久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: MFC中自定義消息映射、循環機制 [打印本頁]

作者: heise    時間: 2014-8-18 02:36
標題: MFC中自定義消息映射、循環機制

通過消息映射、數據同步等有效減低CPU使用率
MFC中自定義
消息映射、循環機制是Windows程序運行的基本方式。
VC++ MFC 中有許多現成的消息句柄,可當我們需要完成其它的任務,需要自定義消息,
就遇到了一些困難。在MFC ClassWizard中不允許添加用戶自定義消息,所以我們必須手動在程序中添加相應代碼,以便可以象處理其它消息一樣處理自定義消息。

自定義消息的步驟如下:
(1)建立Single Document的MFC Application,工程名為:MyMessage
(2)自定義消息:
第一步:定義消息
在Resource.h中添加如下代碼:

//推薦用戶自定義消息至少是WM_USER+100,因為很多新控件也要使用WM_USER消息。
#define WM_MY_MESSAGE (WM_USER+100)
第二步:聲明消息處理函數
選擇CMainFrame類中添加消息處理函數
在MainFrm.h文件中,類CMainFrame內,聲明消息處理函數,代碼如下:

protect:
    afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
第三步:實現消息處理函數
在MainFrm.cpp文件中添加如下代碼:

LRESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
      //TODO: Add your message handle code
      return 0;
}
第四步:在CMainFrame類的消息塊中,使用ON_MESSAGE宏指令將消息映射到消息處理函數中

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    ON_WM_CREATE()
    ON_MESSAGE(WM_MY_MESSAGE,OnMyMessage)
    //ON_REGISTERED_MESSAGE (WM_MY_MESSAGE,OnMyMessage)
END_MESSAGE_MAP()
如果用戶需要一個定義整個系統唯一的消息,可以調用SDK函數RegisterWindowMessage定義消息:
在Resource.h中將代碼

#define WM_MY_MESSAGE (WM_USER+100)
替換為:

static UINT WM_MY_MESSAGE=RegisterWindowMessage(_T("User"));
并使用ON_REGISTERED_MESSAGE宏指令取代ON_MESSAGE宏指令,其余步驟同上。
注:如果仍然使用ON_MESSAGE宏指令,compile可以通過,但是無法響應消息。
當需要使用自定義消息時,可以在相應類中的函數中調用函數PostMessage或SendMessage發送消息PoseMessage(WM_MY_MESSAGE,O,O)。







歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲小视频在线观看 | 亚洲欧美日韩国产 | 高潮毛片又色又爽免费 | 日韩在线一区二区三区 | 99久久久国产精品 | 午夜精品一区二区三区在线播放 | 少妇高潮毛片 | 91av免费在线观看 | 久操视频在线观看 | 日韩在线成人 | 久久日av| 日本午夜网站 | 天天操天天干天天操 | 日本中文在线观看 | 天天爽爽 | 国产成人免费在线观看 | 欧美精品二区三区四区免费看视频 | 伊人av网| 国内黄色片 | 狠狠干在线视频 | 在线观看国产一区二区 | 国产伦精品一区二区三区视频网站 | 欧美三级三级三级爽爽爽 | 免费一级片 | 一区二区三区视频在线 | 一级黄色片免费观看 | 干干干操操操 | 在线看成人片 | 国产性猛交 | 人人超碰人人 | 欧美日韩高清 | 成人精品免费视频 | 国产精品久久久久久久久久久久久 | 99国产精品99久久久久久 | 久草视频免费看 | 精品蜜桃一区二区三区 | 国产伦精品一区二区 | 麻豆一区二区三区 | 日本黄色三级视频 | 亚洲+小说+欧美+激情+另类 | 中文字幕亚洲精品 |