共 16 篇文章 |
|
MFC中的六大关键技术--简单概述。在实现这一个机制的方法是,在MFC中的每一个类中都有一个CRuntimeClass类(《深入浅出MFC》中是这么命名,具体MFC中具有这个功能的类的真实名称,我还不知道),它用来记录类的基本信息,里面包含了必要的一些数据信息(比如类的名称,父类指针,对象大小,以及维护一个链表的必须指针),最后通过将所有类的CR... 阅254 转5 评0 公众公开 14-09-12 11:53 |
MFC六大关键技术--全。MFC六大关键技术之初始化过程我并不认为MFC减轻了程序员们的负担,MFC出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在MFC里徘徊了很久很久(因为那时没有书本详细介绍MFC的原理),毫无收获。在MFC中,因为WinMain函数就是固定的那么几行代码,所以MFC绝对可以帮我们自动完成(MFC的特长就是... 阅340 转5 评0 公众公开 14-09-12 11:52 |
并且大家留意到,我们在设计CRuntimeClass类对时候,只有类名(和基类名)的不同(我们用XXX代替的地方),其它的地方一样,这正是我们想要的,因为我们动态创建也象RTTI那样用到两个宏,只要传入类名和基类作宏参数,就可以满足条件。代码演示如下(以下两个函数都是CRuntimeClass类函数):3、使用时先通过宏RUNTIME_CLASS得到类的RunTime信... 阅20 转0 评0 公众公开 14-09-12 11:50 |
这样,查找一个对象是否属于一个类时,主要关心的是类本身及它的基类,CRuntimeClass classCCmdTarget={ &classCObject, NULL};CRuntimeClass classCWnd={ &classCCmdTarget ,NULL };CRuntimeClass classCView={ &classCWnd , NULL };好了,上面只是仅仅为一个指针m_pBaseClass赋值(MFC中真正CRuntimeClass有多个成员变量和方法)... 阅27 转0 评0 公众公开 14-09-12 11:49 |
追根究底,剖析MFC六大关键技术题外话:我并不认为MFC减轻了程序员们的负担,MFC出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在MFC里徘徊了很久很久(因为那时没有书本详细介绍MFC的原理),毫无收获。//MFC类的基类。在MFC中,因为WinMain函数就是固定的那么几行代码,所以MFC绝对可以帮我们自动完成(MFC的特长... 阅18 转0 评0 公众公开 14-09-12 11:49 |
Windows自定义消息。Windows应用程序利用格式化的Windows消息来与其他Windows应用程序及Windows系统进行通信,这些消息被发往应用程序的窗口函数进行处理。③将消息处理函数与消息对应起来(映射消息);在DefinedMsgView.cpp文件中把WM_MYMESSAGE和OnMyMessage关联起来,即建立消息映射(把消息WM_MYMESSAGE映射到函数OnMyMessage,即应用程序接... 阅673 转2 评0 公众公开 14-09-12 11:20 |
Windows事件驱动机制及消息循环。应用程序需要通过消息循环来接收这些消息。MSG msg;使用GetMessage函数的消息循环在消息队列中没有消息时将等待,如果需要,可以利用这段时间进行I/O端口操作等耗时操作,不过需要在消息循环中使用PeekMessage函数来代替GetMessage。无论应用程序消息队列中是否有消息,PeekMessage函数都立即返回,如果希望等... 阅511 转4 评0 公众公开 14-09-12 11:15 |
0x00A0----0x00A9 非客户区消息 0x0100----0x0108 键盘消息 0x0111----0x0126 菜单消息 0x0132----0x0138 颜色控制消息 0x0200----0x020A 鼠标消息 0x0211----0x0213 菜单循环消息 0x0220----0x0230 多文档消息 0x03E0----0x03E8 DDE消息 0x0400 WM_USER 0x8000 ... 阅15 转0 评0 公众公开 14-09-12 11:13 |
标准消息 标准消息以WM_开头通知消息 通知消息是在针对控件的消息,这些控件包括按钮、组合框、菜单等自定义消息 编程人员自己定义的消息。消息队列 Windows操作系统能为所有的应用程序都能维护一个消息队列,应用程序从消息队列中获取消息并分派给程序某个窗口。消息循环 应用程序运行后,会进入消息循环,在这个消息循环中,应用程序不断的从... 阅166 转1 评0 公众公开 14-06-15 11:03 |
可当我们加入了对该事件的处理函数时,却又将回车键当作控制字符,当输入回车键并不会激发EN_CHANGE事件,也就是说用这种方法仍旧无法捕获回车键的输入。//对拦截的消息进行处理DispathchMessage(&msg);} 由于按下回车键时把产生的消息加入到消息队列中了,也传给了编辑框,但仅仅是由于编辑框没有能力处理该消息而造成了无法对回车键的响... 阅12 转0 评0 公众公开 14-06-15 10:56 |