AFX(MFC)
文章平均质量分 75
pcliuguangtao
喜欢C/C++,有着黑客梦想,喜欢结交有志之士~~
展开
-
微软基础类库MFC概述
微软基础类库(MFC:Microsoft Foundation Class)是微软为Windows程序员提供的一个面向对象的Windows编程接口,它大大简化了Windows编程工作。使用MFC类库的好处是:首先,MFC提供了一个标准化的结构,这样开发人员不必从头设计创建和管理一个标准Windows应用程序所需的程序,而是“站在巨人肩膀上”,从一个比较高的起点编程,故节省了大量的时间;其次,它提供了大量的代码,指导用户编程时实现某些技术和功能。 对用户来说,用MFC开发的最终应用程序具有标准的、熟原创 2010-08-24 02:33:00 · 5133 阅读 · 2 评论 -
MFC中的映射方式
映射方式 设定映射模式: SetMapMode(hdc,iMapMode); 获得当前映射模式: iMapMode=GetMapMode(hdc); n内定的影响方式为MM_TEXT,在这中映像方式下,逻辑单位与实际单位相同,这样我们可以直接以图素为单位进行操作。如果您认为使用图素进行工作很合适,那么就不要使用内定的MM_TEXT方式外的任何映像方式。如果需要以英寸或者毫米尺寸显示图像,那么可以从GetDeviceCaps中取得所需要的信息,自己再进行缩放。其它映像方式都是避免您自己进行缩放的原创 2010-10-23 23:45:00 · 4859 阅读 · 2 评论 -
C Run-Time Libraries With C++ Standard Libraries
本篇文章介绍的是c运行时库以及与它们向关联的编译器选项和预处理指令。另外还有标准c++库的介绍: (该文章采用的信息是来源于MSDN,Visual Studio 2010版本,信息是较新的,为的是不让大家在旧版本的信息上浪费时间,原文链接:http://msdn.microsoft.com/en-us/library/abx4dbyh%28v=VS.100%29.aspx) This topic discusses the various .lib files that comprise the C r翻译 2010-10-26 16:13:00 · 1092 阅读 · 0 评论 -
静态链接库LIB和动态链接库DLL的区别 创建和示例
<br />转自:http://www.cnblogs.com/winston/archive/2008/07/05/1236273.html<br />1.什么是静态连接库,什么是动态链接库<br /> 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的转载 2010-10-26 19:06:00 · 512 阅读 · 0 评论 -
A Crash Course on the Depths of Win32™ Structured Exception Handling
FROM:http://www.microsoft.com/msj/0197/exception/exception.aspx At its heart, Win32 structured exception handling is an operating system-provided service. All the docs you're likely to find about SEH describe one particular com-piler's runtime library wra转载 2010-10-26 19:38:00 · 1123 阅读 · 0 评论 -
Windows的SEH机理简要介绍
zhuan:http://www.cnblogs.com/Winston/archive/2010/03/16/1687649.html 1.异常分类 一般来说,我们把Exception分为2类,一类是CPU产生的异常,我们称之为CPU异常(或者硬件异常)。另一类为是通过调用RaiseException API产生的软件异常,我们称之为软件异常。 Windows使用同一的方式(KiDispatchException)来描述和分发这两类异常。但是,在处理各自异常时,会略有区别。 一般来说,异常处理过程转载 2010-10-26 19:32:00 · 1006 阅读 · 0 评论 -
动态添加菜单项
在VC6.0和VS2010里面动态添加菜单项是不一样的,查看MSDN文档可知,VS2010采用的是MFC9.0版,其中有很多新增的项具体信息请查看http://msdn.microsoft.com/en-us/library/ws8s10w4.aspx,本文就根据自己的测试详细的比较一下二者的区别: 1.在VC6.0里面动态添加一个子菜单项: 在CMainFrame::OnCtreate()中添加代码,另外要在Resource.h里面添加#define ID_MENU_ADDMENUITEM 32原创 2010-10-30 16:59:00 · 4908 阅读 · 8 评论 -
关于MFC Control 控件编程
刚开始的时候难免会遇到缺乏资料,不过还好,只要有耐心MSDN还是不会让我们太失望的~~ 对于所有Control的最新介绍可以从下面的连接中找到:http://msdn.microsoft.com/en-us/library/47xcww9x.aspx。例如,CTreeCtrl/CToolBarCtrl等等 另外对于控件的消息和我们常见的WM_*不一样,控件采用的是NM_*,Notify通告消息,至于采用通告消息的原因和实现的方式可以参看:http://msdn.microsoft.com/en-us/l原创 2010-11-02 15:26:00 · 842 阅读 · 1 评论 -
IP地址CIDR斜线记法求子网信息小工具软件(vs2010+MFC)
最近在学习计算机网络,遇到根据斜线记法来确定该IP所在子网的信息,包括:子网号、子网掩码、第一个可用IP、最后一个可用IP、广播地址、可用IP数总量。 因为自己在二进制和十进制转换之间反应比较慢,所以自己决定做一个自动计算子网所有信息的小工具软件:IPTool! 下面是截图: 还是像以前一样我会介绍自己的思路和部分代码,希望感兴趣的朋友可以多交流~~ 前提: 当然要明白这个小工具的实现方法,你必须会自己得出所有的子网信息,如果你都做不出来,就不可能编写一个工具出来替你完成计算。 思路: 网原创 2010-11-04 23:03:00 · 3652 阅读 · 0 评论 -
”C++中赋值和初始化不同“实例说明---欢迎大家发表自己的看法
#include using namespace std; class Astring { public: Astring(){s_=NULL;} Astring(const char *init); ~Astring(); Astring(const Astring &that); Astring &operator=(const Astring &that); Astring &operator=原创 2010-11-05 19:08:00 · 1201 阅读 · 0 评论 -
C++ Common Knowledge(c++必知必会) Notes(四)
30.模板术语 这一条是很简单的一条,主要是明确不同程序员所指的内容的正确性。 template //T是一个模板参数 class Heap{…}; //Heap是一个模板名字 //… Heap dHeap; //double是一个模板实参 //Heap 是一个模板id 模板名字和模板id之间的区别,前者只是一个简单的标识符,后者则是指附带有模板实参列表的模板名称。 31.泛型算法 一原创 2011-01-06 11:37:00 · 807 阅读 · 0 评论 -
C++ Common Knowledge(c++必知必会) Notes(一)
在我们的学习中,对于基本的C/C++知识的掌握可以说问题不大,但是如果想进一步的学习c++的相关知识,这本书确实很经典,言简意赅的介绍了C++很多的特性,给我们对C++的理解越来越深刻,所以十分推荐C++的爱好者好好看一下。这几篇文章是自己感觉重要的地方,希望对大家也会有所帮助。 1、STL 并不仅仅是一个库,它更是一种优秀的思想以及一套约定。STL包含三大组件:容器、算法和迭代器。容器用于容纳和组织元素;算法执行操作;迭代器则用于访问容器中的元素。STL的优秀思想体现在:容器与在容器上执行的算原创 2010-10-24 19:03:00 · 1676 阅读 · 0 评论 -
连接指示符:extern “C”
有些时候我们会在代码中看到extern “C”,尤其是在动态调用动态链接库(该库使用其他语言编写的)时。extern指示符的作用时说明该函数或库文件使用其他语言编写的。extern “C”就是说用C编写的,注意C要大写。 extern “C”3中标识方式: 1.只标示一个函数 extern “C” bool ExampleFun(); 2.使用复合语句标示一组函数 extern “C” { bool ExampleFun(); void MathFun(); } 3.通过引用头文件来标识原创 2010-10-19 22:01:00 · 741 阅读 · 0 评论 -
类的静态成员函数应用实例
类的静态成员函数(static)是属于类的所有对象所共有,存放在静态存储区,不可以在定义中出现分配内存的语句(如int a=9;)。 本次的实例是说类的静态成员函数在使用时可以不用先定义一个对象,然后通过对象来调用,但是非static函数,就必须通过对象来调用。 #include using namespace std; class Point { private: int x,y; static int set; public:原创 2010-09-29 20:19:00 · 1156 阅读 · 0 评论 -
MFC Programming Notes 1
总的来说,MFC封装了Win32 API、OLE API、ODBC API等底层函数的功能,比鞥提供更高一层的接口,简化Windows编程,同时,MFC支持对底层API的直接调用。下面是Microsoft MSDN 上一段对MFC要实现的目标的描述(http://msdn.microsoft.com/en-us/library/zscyw75e%28v=VS.100%29.aspx): The Microsoft Foundation Class Library is an object-oriented原创 2010-10-04 16:30:00 · 814 阅读 · 0 评论 -
怎样在vs2010里面实现两个编辑控件对应一个消息处理函数
书本上介绍的实现方法是采用的vc6.0,自己试了一遍,在vc6.0下可以采用。但是在vs2010里面却不行,实际上按照wizard确实不行,但是我们可以直接更改代码,图形UI解决不了的问题,我们可以手动更改代码,其实很简单。 新建一个对话框风格的mfc程序,名为Ctest,所以系统会自动生成:CCtestDlg类,对应的文件为:CtestDlg.cpp和CtestDlg.h 比如我们想让edit1,edit2的内容改变时共用一个消息处理函数OnChangeEdit(); 1、在CtestDlg.原创 2010-10-04 17:36:00 · 1434 阅读 · 0 评论 -
MFC简单数据类型类及其转换
来自:http://hi.baidu.com/sunkanghome/blog/item/96c0312557f3c76435a80f62.html 简单数据类型类 CString对象由一个可变长的字符序列组成,它提供了一些简单的函数和操作符成员(如连接和比较操作符等)。 1、CString对象的连接 CString对象的连接是通过该类的“+”成员操作符进行的,它可以将两个字符串合并起来,并返回一个CString对象。需要注意的是两个参数字符串中至少有一个必须是CString对象,另外一原创 2010-10-05 16:33:00 · 745 阅读 · 0 评论 -
VC/MFC调试技术
一、断言 1、基本概念 断言是一种让错误在运行时候自我暴露的简单有效实用的技术。它们帮助你较早较轻易地发现错误,使得整个调试过程效率更高。 断言是布尔调试语句,用来检测在程序正常运行的时候某一个条件的值是否总为真,它能让错误在运行时刻暴露在程序员面前。使用断言的最大好处在于,能在更解决错误的发源地的地方发现错误。断言具有以下特征: .断言是用来发现运行时刻错误的,发现的错误是关于程序实现方面的。 .断言中的布尔表达式显示的是某个对象或者状态的有效性而不是正确性。 .断言在条件编译后只原创 2010-10-06 15:32:00 · 638 阅读 · 0 评论 -
MFC Programming Notes 2
1.控件 windows OS 提供了大量的标准控件,每种控件都有一个MFC类与之对应。 visual c++中,可以使用的控件可以分为三类: Windows标准控件 Activex控件 其他MFC控件类 创建windows标准控件有两种方法:静态创建和动态创建。 控件通过向父窗口发送控件通知消息来表明发生了某种事件。在MFC中,控件消息由按钮(BN_)、编辑框(EN_)、组合框(CBN_)、列表框(LBN_)等来产生,在消息名前加上ON_即构成宏名。 2、定时器消息:WM_TIMER 当原创 2010-10-12 23:45:00 · 704 阅读 · 0 评论 -
常见C/C++函数调用规范
例子不太好举啊,其实就是在函数声明的时候多加一个关键字,比如很多API函数就是象这样声明的: int WINAPI MessageBoxA(HWND,LPCSTR,LPSTR,UINT); 而WINAPI实际上就是__stdcall. 大多数API都采用__stdcall调用规范,这是因为几乎所有的语言都支持__stdcall调用.相比之下,__cdecl只有在C语言中才能用. 但是__cdecl调用有一个特点,就是能够实现可变参数的函数调用,比如printf,这用__stdc原创 2010-12-03 22:22:00 · 1987 阅读 · 0 评论 -
点对点即时通讯软件
一、题目分析 要实现一个简单的聊天工具,实现即时聊天、文件传输功能。根据我们所学的知识,可以采用socket套接字编程。 自己采用的是MFC中CSocket结合TCP传输协议来实现。使用了多套接字分别来实现消息传递和文件传输。 使用的知识点有: 1.使用CSocket类来实现建立套接字、监听、接受连接、发送数据、接收数据; 2.使用加速键来实现对键盘输入的控制,实现回车及发送消息; 二、概要设计 (一)服务器端 如图所示: class CServSocket继承原创 2010-12-07 23:32:00 · 4439 阅读 · 0 评论 -
编写一个闹钟和定时关机工具(MFC VS2010)
这个小工具在自己生活当中能用到,运行软件以后,会显示当前的系统时间,然后你可以设定时间,再选择是定时响铃还是关机。截图如下: 前言:本程序采用visual studio 2010 ,对话框类型的应用程序,生成的类视图如下,右边为CTimeDlg类的本分函数: 主要的实现方法和关键点如下: 1.怎样获得系统时 为CTimeDlg类添加成员变量 CTime m_CurrentTime; m_C原创 2010-10-18 00:09:00 · 6577 阅读 · 4 评论 -
C++ Common Knowledge(c++必知必会) Notes(四)
30.模板术语 这一条是很简单的一条,主要是明确不同程序员所指的内容的正确性。 template //T是一个模板参数 class Heap{…}; //Heap是一个模板名字 //… Heap dHeap; //double是一个模板实参 //Heap 是一个模板id 模板名字和模板id之间的区别,前者只是一个简单的标识符,后者则是指附带有模板实参列表的模板名称。 31.泛型算法 一原创 2010-12-08 21:43:00 · 670 阅读 · 0 评论 -
MFC+VS2010编写一个计算器
每个人都有自己的编程语言爱好,每种语言都有自己的优势也都有自己的不足,可以肯定的是每种语言都只有学的深入了以后才能对这种语言进行熟练的操作,相对而言自己更喜欢C/C++。这篇文章就是根据C++和MFC来做的一个计算器(如下图1),另外一个使用方便并且效率高的IDE开发环境也是很重要的,现在很多书籍包括我们学习的时候都是采用VC6.0,不否认VC6.0很经典,但是用过VS2010以后相信你也不会失望的,另外向大家推荐一个插件Visual Assist X,她自动完成功能真是让人爱不释手。原创 2010-11-24 19:32:00 · 52464 阅读 · 19 评论