2012-08-06 21:34
⁄ 工业·编程
⁄ 共 3698字
消息队列中的本窗口大量消息并不会被自动取出,也没有自动地调用WinProc函数对消息加以处理,但是,Window系统提供了三个API函数给我们,让我们自己去完成这件事。看吧! GetMessage( …); TranslateMessage(…); DispatchMessage(…);
下面就让我分别对这三个函数解释解释。
1 GetMessage( …)
原型如下: BOOL GetMessage( LPMSG lpMsg, &...
MFC阅读全文
2012-08-06 21:21
⁄ 工业·编程
⁄ 共 4902字
前一段,帮人写了个小控件,又温习了一遍Windows消息处理机制,现在把一些知识点总结出来,供大家参考.
1.窗口 Windows程序是由一系列的窗口构成的,每个窗口都有自己的窗口过程,窗口过程就是一个拥有有固定 Signature 的 C函数,具体格式如下:
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wPa...
MFC, 消息机制阅读全文
2012-08-06 06:55
⁄ 工业·编程
⁄ 共 1547字
1、消息驱动与消息循环
“消息”是windows运行机制中一个基本而又重要的概念。消息是一个报告事件发生的通知,消息驱动是围绕消息的产生与处理展开的,并依靠消息循环机制来实现。
从程序设计的观点看,某条消息可被视为某个事件的发生,比如点击鼠标。事件即可以由用户引发,也可以由应用程序产生,当然Windows本身也能发出消息。Windows应用程序的消息来源有4种:输入消息,控制消息,系统消息,用户消息。
Windows是一个多任务...
MFC阅读全文
2012-08-06 06:53
⁄ 工业·编程
⁄ 共 4464字
消息的传递与发送是Windows应用程序的核心所在,任何事件的触发与响应均要通过消息的作用才能得以完成。在SDK编程中,对消息的获取与分发主要是 通过消息循环来完成的,而在MFC编程中则是通过采取消息映射的方式对其进行处理的。相比而言,这样的处理方式要简单许多,这也是符合面向对象编程中尽可 能隐含实现细节的原则。一个完整的MFC消息映射包括对消息处理函数的原型声明、实现以及存在于消息映射中的消...
MFC阅读全文
2012-08-06 06:51
⁄ 工业·编程
⁄ 共 995字
用户可以为了特定的目的而定义自己的消息,这些消息也称为自定义消息。进行自定义消息的方法很简单,一般有两种:一种是利用ON_MESSAGE宏,另外一种就是创建自己的消息映射宏,这一种方法可以定制消息的参数类型,而不像前者只能使用固定的消息参数类型。但是一般情况下不需要定制消息的参数类型,因此这里对此不予介绍。本节主要介绍第一种比较常用的方法。
预定义常量值WM_USER(0x040...
MFC阅读全文
2012-08-04 23:08
⁄ 工业·编程
⁄ 共 4463字
在MFC中,排除调用API函数那种复杂的方法之外,就只有CMenu这个类可以让我们来控制菜单了。对于这个类,琢磨了两天,总算有点心得。
对于系统菜单,创建起来比较简单,直接使用资源编辑器就能生成菜单,再通过ClassWizard创建菜单命令函数。在我的资源中上传了一个工程,实现了一个右键弹出贴图菜单。结合这个工程,介绍动态创建菜单、创建弹出式菜单和重绘菜单。
首先介绍基础知识:
一、CMen...
MFC阅读全文
2012-08-03 23:11
⁄ 工业·编程
⁄ 共 10867字
MFC类的分类
1 Root: CObject : CObject 2 Application Architecture Classes: CWinApp/CFrameWnd/...
3 Window, Dialog, and Control Classes:CWnd/CDialog/... 4 Drawing and Printing Classes : CGdiObject/CPrintInfo/... 5 Simple Data Type Classes :CString/CRect/... 6 Array, List, and Map Classes :CTypedPtrArray/... 7 File and Database Classes : CStdioFile/CDatabase/... 8 Internet an...
MFC阅读全文
2012-08-03 23:02
⁄ 工业·编程
⁄ 共 8519字
1、#include指令
包含指定的文件
2、#define指令
预定义,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了
3、#typedef指令
常用来定义一个标识符及关键字的别名它是语言编译过程的一部分,但它并不实际分配内存空间。
4、#ifndef #else #endif指令
条件编译。一般情况下,源程序...
MFC阅读全文
2012-08-02 07:52
⁄ 工业·编程
⁄ 共 3110字
和Win32平台创建Windows程序作对比:MFC有个theApp全局变量来代表程序的本身.
WinMain
寻找WinMain入口:在安装目录下找到MFC文件夹下的SRC文件夹,SRC下是MFC源代码。WinMain在APPMODUL.CPP中实现: _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { // call shared/exported WinMain return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nC...
MFC阅读全文
2012-08-01 05:00
⁄ 工业·编程
⁄ 共 1240字
// MFC.cpp -- Windows MFC编程示例 // 编译:cl /MD /D "_AFXDLL" MFC.cpp /link /subsystem:windows
#include <afxwin.h>
#define IDC_BUTTON1 100
//声明应用类 class MyApp:public CWinApp { public: virtual BOOL InitInstance(); };
//声明主窗口类 class MyWnd:public CFrameWnd { CStatic * cs; CButton * cb;
public: MyWnd(); afx_msg void HandleButton...
MFC阅读全文