随笔 - 11  文章 - 0  评论 - 30  阅读 - 7965

随笔分类 -  MFC

消息处理(四)
摘要:一、线程消息在窗体应用中,线程可调用窗口过程处理属于他创建的某个窗口的消息(投递而来),此外还可以直接处理其他线程投递的消息。(1)定义线程消息标志 线程消息可以是任意的,不必为WM_USER,当然为了获得系统范围内唯一的消息标志,也可以使用自定义的登记消息作为线程消息 UINT MYTHREADMSG = RegisterWindowMessage("MYTHREADMSG");提示:不用static关键字修饰MYTHREADMSG 变量,使得其他CPP文件中可以使用该变量。(2)手工修改CWindThread的消息映射表,添加线程消息映射宏 跟线程消息相关的映射宏有两个 阅读全文
posted @ 2013-07-18 17:40 尘土•狼 阅读(270) 评论(0) 推荐(0) 编辑
消息处理(三)
摘要:一、自定义命令为了使用自定义命令,一般要经过如下几个步骤:(1)自定义命令ID命令ID是WORD型的。虽然可以自由设定其值,但是不能和应用程序中其他命令ID冲突。 在资源文件中新建一个命令,例如#define ID_LOADTOIE 8888(2)添加自定义消息映射项BEGIN_MESSAGE_MAP(CMsgDialog,CDialog) ON_COMMAND(ID_LOADTOIE,LoadToIE)END_MESSAGE_MAP()(3)发送自定义命令处理命令消息WM_COMMAND的窗口过程形式如下:LRESULT CALLBACK WindowProc( HWND hW... 阅读全文
posted @ 2013-07-16 17:53 尘土•狼 阅读(281) 评论(0) 推荐(0) 编辑
消息处理(二):投递与发送
摘要:消息的投递(Post)过程类似于普通信件的投递过程。普通信件通过邮递员到达收信方的信箱里,收信方取得该信,阅读信件内容,并可能回信。在这个过程中,邮递员的责任只是将信件送到收信者的信箱,一切任务就完成了。 消息的发送(Send)过程理解为打电话交流的过程。甲找到乙的电话号码,然后开始拨号。如果运气好,拨通了乙的电话,那么两人就联系上了。假设甲方从不主动挂断电话,那么只有乙方先挂断电话,两人的一次联系才宣告结束。PostMessage函数BOOL PostMessage( HWND hWnd, //目标窗口句柄 UINT ... 阅读全文
posted @ 2013-07-15 15:59 尘土•狼 阅读(917) 评论(0) 推荐(0) 编辑
消息处理(一)
摘要:每个窗口应用都有一个消息队列,线程通过消息循环机制不断地从该队列中取出消息进行处理。一、标准窗口消息的处理对于标准窗口消息而言,其处理仅限于某个窗口。首先,由窗口类本身处理,若未处理,则传递给基类处理,对所有的祖先类都不能处理的,则由一个MFC提供的一个全局的默认的处理函数进行处理。常用窗口消息:WM_CREATE消息:当调用CreateWindowEx或CreateWindow请求创建窗口时,就会向被创建的窗口发送该消息。只有在WM_CREATE消息处理之后,CreateWindowEx或CreateWindow调用才会返回。重载CWnd::OnCreate时,如果返回0,这表示继续创建窗口 阅读全文
posted @ 2013-07-11 17:08 尘土•狼 阅读(239) 评论(0) 推荐(0) 编辑
消息映射
摘要:一、消息映射表AFX_MSGMAP_ENTRY结构表示消息映射表中的一个消息映射项,将消息与处理该消息的成员关联起来。struct AFX_MSGMAP_ENTRY{UINT nMessage; //消息标志UINT nCode; //控制代码或WM_NOTIFY通知码UINT nID; //控件ID,如果是窗口消息,其值为0UINT nLastID; //一定范围命令的最后一个命令或控件ID,用于支持组消息映射UINT_PTR nSig; //消息处理成员函数的签名代码AFX_PMSG pfn; //消息处理函数};AFX_MSGMAP表示一个消息映射表,... 阅读全文
posted @ 2013-07-10 11:59 尘土•狼 阅读(519) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示