多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > [ATL/WTL]_[初級]_[Win32窗口自定義消息處理過程]

[ATL/WTL]_[初級]_[Win32窗口自定義消息處理過程]

來源:程序員人生   發布時間:2016-07-20 08:16:24 閱讀次數:3764次

場景

  1. 有時候我們需要單獨對某個窗口消息進行攔截,比如CEdit響應回車, 這時候候就需要攔截窗口處理進程了. 固然MFC的界面可以重載:
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg){

但是WTL的CEdit其實不支持這類方式,WTL如果想在 PreTranslateMessage 里攔截消息,必須繼承 CMessageFilter 后還要把這個控件注冊到消息循環里才行,也就是必須寫子類 或從父窗口攔截這個CEdit的消息.

CMessageLoop* pLoop = _Module.GetMessageLoop(); ATLASSERT(pLoop != NULL); pLoop->AddMessageFilter(this);

方案

  1. 通過使用 SetWindowLong來改變窗口處理進程來處理相干的消息,其他消息使用原進程繼續處理.
static WNDPROC OldWndProc = NULL; static UiPreviewListDialog* gDialog = NULL; static LRESULT CALLBACK NewEditProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) // 該對話框新的窗口回調函數,過濾WM_KEYDOWN消息。 { switch(message) { case WM_GETDLGCODE: { return (DLGC_WANTALLKEYS | CallWindowProc(OldWndProc, hWnd, message, wParam, lParam)); // 注意這里,否則沒有辦法捕獲Tab/方向鍵 } case WM_KEYDOWN: { if(wParam == VK_RETURN) { std::cout << "Enter: " << std::endl; BOOL handle; gDialog->OnSearch(message,wParam,hWnd,handle); } } break; default: break; } return CallWindowProc(OldWndProc, hWnd, message, wParam, lParam); } gDialog = this; OldWndProc = (WNDPROC)edit_.SetWindowLong(GWL_WNDPROC, (LONG)NewEditProc);

參考:
CEdit中對回車鍵的響應
SetWindowLong function
CallWindowProc

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 4444亚洲国产成人精品 | 久久这里精品 | 亚洲国产高清视频在线观看 | ak福利午夜在线观看 | 永久免费毛片在线播放 | 午夜羞羞影院 | 国产日韩精品欧美一区 | 亚洲欧美色欧另类欧 | 国产在线精品一区二区中文 | 国产亚洲图片 | 午夜色网站| 欧美成人在线免费 | 久久久精品久久久久久久久久久 | 8mav福利视频在线播放 | 国产大象视频一区二区 | 久久国产免费一区 | 久久精品综合一区二区三区 | 免费在线中文字幕 | 亚洲成人第一 | 欧美一级乱妇老太婆特黄 | 国产v日韩v欧美v精品专区 | 日韩爱爱视频 | 99久久精品费精品国产一区二 | 91欧美精品综合在线观看 | 欧洲天堂网 | 高清不卡一区二区三区 | 欧美最猛性xxxxx图片 | 黄视频在线观看www 黄网站大全 | 五月天开心中文字幕 | 欧美一级欧美一级毛片 | 最新jizz欧美 | 一级色网站 | 天天综合天天做天天综合 | 久久久久久午夜精品 | 成人国产一区二区 | 在线高清美女视频免费看 | 成人精品一区二区久久久 | 国产老妇一性一交一乱 | 欧美精品亚洲精品日韩专区va | 一二三四日本手机高清视频 | 亚洲国产欧美一区二区欧美 |