青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

brent's hut

simulate OnIdle in MFC ActiveX control

There are two ways to do this, one is simple, another is complicated but more powerful.

Method A:
::SetWindowsHookEx(WH_FOREGROUNDIDLE, YourIdleProc, AfxGetInstanceHandle(), GetCurrentThreadId());

Method B (my way):
 1 static HHOOK s_hGetMsgHook = NULL;
 2 
 3 LRESULT FAR PASCAL GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
 4 {
 5     AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
 6 
 7     LPMSG lpMsg = (LPMSG) lParam;
 8     if( (nCode >= 0&& PM_REMOVE == wParam)
 9     {
10         //your code here. maybe to deal with hot-keys, accelerators ...
11         //see http://support.microsoft.com/kb/187988
12 
13         //my code to simulate OnIdle
14         static BOOL bIdle = FALSE;
15         CWinApp* pApp = AfxGetApp();
16         if(!bIdle && pApp->IsIdleMessage(lpMsg))
17             bIdle = TRUE;
18         
19         if(bIdle)
20         {
21             MSG msgPeek = {0};
22             if(!::PeekMessage(&msgPeek, NULL, NULL, NULL, PM_NOREMOVE))
23             {
24                 VERIFY(PostMessage(AfxGetMainWnd()->GetSafeHwnd(), WM_USER+0x120x340x56));
25             }
26         }
27 
28         if(lpMsg->hwnd == AfxGetMainWnd()->GetSafeHwnd() &&
29             lpMsg->message == WM_USER+0x12 && lpMsg->wParam == 0x34 && lpMsg->lParam == 0x56)
30         {
31             lpMsg->message = WM_NULL;
32             lpMsg->lParam = 0L;
33             lpMsg->wParam = 0L;
34 
35             pApp->OnIdle(0);
36             bIdle = FALSE;
37         }
38     }
39 
40     return ::CallNextHookEx(s_hGetMsgHook, nCode, wParam, lParam);
41 }
42 
43 int CYourOleControl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
44 {
45     //...
46     
47     if(NULL == s_hGetMsgHook)
48         s_hGetMsgHook = ::SetWindowsHookEx(WH_GETMESSAGE, GetMsgProc, AfxGetInstanceHandle(), GetCurrentThreadId());
49 }
50 
51 void CYourOleControl::OnDestroy() 
52 {
53     //...
54     
55     ::UnhookWindowsHookEx(s_hGetMsgHook);
56     s_hGetMsgHook = NULL;
57 
58     COleControl::OnDestroy();
59 }

Method A is far more simple, but with Method B:

1) You can override CWinApp::IsIdleMessage to filter some special messages, such as a frequent timer which will not affect what you want to do in CWinApp::OnIdle. Because timer will affect message queue and if you don't filter it, OnIdle will be called every time after the timer is invoked.

2) Sometimes your action in OnIdle will affect message queue inevitably, thus you will get a infinite loop: OnIdle->the special messages in message queue->OnIdle->... But with Method B, with SPY++ you can find the special messages, and filter them in IsIdleMessage.

posted on 2010-04-15 15:49 brent 閱讀(1726) 評論(0)  編輯 收藏 引用 所屬分類: C++WindowsWeb

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品在线二区| 欧美一区二区三区啪啪| 欧美高清视频在线观看| 嫩模写真一区二区三区三州| 狠狠做深爱婷婷久久综合一区| 久久久国产成人精品| 久久久999精品视频| 亚洲国产精品一区在线观看不卡| 免费成人在线视频网站| 免费亚洲一区| 亚洲视频999| 午夜精品999| 亚洲国产一成人久久精品| 亚洲激情在线播放| 国产精品成人一区二区网站软件 | 亚洲午夜av在线| 亚洲一品av免费观看| 国产一区二区三区在线免费观看| 老司机aⅴ在线精品导航| 欧美不卡在线视频| 亚洲一区在线视频| 久久精品视频免费播放| 亚洲精品三级| 亚洲欧美国产日韩天堂区| 亚洲成色精品| 一区二区三区成人| 1024日韩| 亚洲一区欧美一区| 91久久在线视频| 香蕉久久夜色精品国产使用方法| 在线观看免费视频综合| 亚洲精品一区二区三区四区高清| 国产日韩精品一区二区三区| 欧美国产精品中文字幕| 国产精品一区2区| 亚洲电影免费观看高清完整版| 欧美系列精品| 亚洲高清自拍| 黑人操亚洲美女惩罚| 99成人在线| 亚洲欧洲精品成人久久奇米网| 亚洲影院免费观看| 日韩亚洲成人av在线| 久久久久国产免费免费| 亚洲你懂的在线视频| 欧美激情视频免费观看| 久久综合伊人77777蜜臀| 国产精品区二区三区日本| 亚洲黄色高清| 亚洲福利免费| 久久国产精品久久久| 西西人体一区二区| 欧美视频在线观看 亚洲欧| 亚洲第一福利在线观看| 韩国一区二区在线观看| 亚洲欧美电影院| 亚洲综合成人婷婷小说| 欧美日韩一区免费| 亚洲人精品午夜在线观看| 亚洲高清视频中文字幕| 久久精品国产欧美激情| 久久人人97超碰精品888| 国产精品夜夜夜一区二区三区尤| 99热这里只有精品8| 中文日韩欧美| 国产精品久久久久久久久婷婷| 亚洲精品永久免费| 在线一区免费观看| 欧美三级在线视频| 夜夜爽夜夜爽精品视频| 亚洲一区二区三区在线观看视频| 欧美日韩国产免费| 一区二区三区精密机械公司 | 亚洲人屁股眼子交8| 久久偷看各类wc女厕嘘嘘偷窃| 久久男人资源视频| 激情五月婷婷综合| 免费欧美在线视频| 最近中文字幕日韩精品| 中文欧美字幕免费| 国产精品卡一卡二卡三| 午夜精品久久99蜜桃的功能介绍| 久久国产精品99久久久久久老狼 | 国产精品久久久对白| 中文亚洲欧美| 久久九九99| 亚洲黄色成人| 欧美另类在线观看| 亚洲午夜在线观看视频在线| 亚欧成人在线| 亚洲丰满少妇videoshd| 欧美精品久久久久久久免费观看 | 亚洲欧洲日本专区| 亚洲欧美电影院| 韩日精品在线| 欧美日韩91| 午夜精品免费视频| 欧美国产精品久久| 午夜精品国产精品大乳美女| 红桃视频国产一区| 欧美视频第二页| 久久精品盗摄| 日韩视频在线播放| 久久免费精品视频| 一区二区欧美国产| 一区国产精品| 欧美视频在线观看免费网址| 欧美中文字幕视频在线观看| 亚洲国产精品美女| 久久久久天天天天| 亚洲一区二区在线看| 一区在线影院| 国产精品区二区三区日本| 蜜臀91精品一区二区三区| 亚洲无线观看| 亚洲国产精品99久久久久久久久| 亚洲欧美日韩电影| 日韩视频一区二区| 一区福利视频| 国产日本亚洲高清| 欧美午夜三级| 欧美激情一区二区久久久| 欧美有码在线视频| 亚洲在线中文字幕| 亚洲精品视频在线播放| 欧美顶级少妇做爰| 久久久精品国产免大香伊| 亚洲专区国产精品| 夜夜嗨av色一区二区不卡| 在线观看成人av| 黄色成人av| 国产在线观看91精品一区| 欧美午夜视频| 欧美三区免费完整视频在线观看| 免费观看在线综合| 麻豆精品网站| 久久人人爽人人爽| 久久久久一区| 久久香蕉国产线看观看av| 久久精品视频免费播放| 性久久久久久久| 欧美一区二区三区久久精品茉莉花| 一区二区三区成人精品| 99精品欧美一区二区三区| 亚洲精选91| 99这里有精品| 亚洲午夜高清视频| 亚洲免费在线视频| 欧美一区成人| 久久久精品一区| 老妇喷水一区二区三区| 蜜桃av一区二区| 欧美精品久久久久a| 欧美精品在线免费播放| 欧美日韩卡一卡二| 国产精品久久7| 国产午夜精品久久| 亚洲成色www久久网站| 亚洲国产一区二区三区青草影视| 亚洲大片一区二区三区| 亚洲精品国产系列| 亚洲婷婷国产精品电影人久久| 亚洲一区二区在线免费观看| 亚洲欧美日韩综合一区| 久久久久国产一区二区三区| 男人天堂欧美日韩| 亚洲国产一区二区视频| 一区二区三区产品免费精品久久75| 中文精品一区二区三区| 欧美在线短视频| 欧美顶级艳妇交换群宴| 国产精品久久久久久久浪潮网站| 国产情人综合久久777777| 欲香欲色天天天综合和网| 一本色道久久综合狠狠躁的推荐| 亚洲影音先锋| 猛男gaygay欧美视频| 亚洲精品视频在线| 久久av一区二区三区| 欧美精品乱码久久久久久按摩| 欧美视频国产精品| 在线观看亚洲精品视频| 亚洲综合视频在线| 欧美韩日高清| 亚洲在线1234| 欧美gay视频| 国产一区 二区 三区一级| 妖精成人www高清在线观看| 久久久久久久一区| 99www免费人成精品| 久久在线免费视频| 国产精品视频一二| 亚洲剧情一区二区| 老妇喷水一区二区三区| 宅男噜噜噜66国产日韩在线观看| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品免费久久久久久| 亚洲日本欧美日韩高观看| 久久久精品国产一区二区三区| 9久re热视频在线精品|