电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

VC中自定义消息的方法VIP专享VIP免费

VC中自定义消息的方法_第1页
VC中自定义消息的方法_第2页
VC中自定义消息的方法_第3页
VC 中自定义消息的方法 2009-07-13 17:22 第一: 简易版本: 定义一个自定义消息号:const UINT WM_MYMESSAGE = WM_USER + n; // 自定义消息一般大于WM_USER ,然后就可以为该消息添加映射了 afx_msg LRESULT OnMyMessage ( WPARAM wParam, LPARAM lParam ); ON_MESSAGE ( WM_MYMESSAGE, OnMyMessage ) LRESULT cxx::OnMyMessage ( WPARAM wParma, LPARAM lParam ) { ... } 如果该消息不需要返回值,也不需要参数,那么可以使用宏ON_MESSAGE_VOID来映射 afx_msg void OnMyMessage (); ON_MESSAGE_VOID ( WM_MYMESSAGE, OnMyMessage ) void cxx::OnMyMessage () { ... } 复杂全面版本: 消息映射、循环机制是 Windows程序运行的基本方式。VC++ MFC 中有许多现成的消息句柄,可当我们需要完成其它的任务,需要自定义消息,就遇到了一些困难。在 MFC ClassWizard中不允许添加用户自定义消息,所以我们必须在程序中添加相应代码,以便可以象处理其它消息一样处理自定义消息。通常的做法是采取以 下步骤: 第一步:定义消息。 推荐用户自定义消息至少是 WM_USER+100,因为很多新控件也要使用WM_USER消息。 #define WM_MY_MESSAGE (WM_USER+100) 第二步:实现消息处理函数。 该函数使用WPRAM和 LPARAM参数并返回LPESULT。 LPESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam) { // TODO: 处理用户自定义消息 ... return 0; } 第三步:在类头文件的AFX_MSG块中说明消息处理函数: class CMainFrame:public CMDIFrameWnd { ... // 一般消息映射函数 protected: // {{AFX_MSG(CMainFrame) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnTimer(UINT nIDEvent); afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); //}}AFX_MSG DECLARE_MESSAGE_MAP() } 第四步:在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中。 BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_TIMER() ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage) //}}AFX_MSG_MAP END_MESSAGE_MAP() 如果用户需要一个定义整个系统唯一的消息,可以调用SDK函数RegisterWindowMessage定义消息: static UINT WM_MY_MESSAGE=RegisterWindowMessage("User"); 并...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部