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

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 閱讀(1714) 評論(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>
            一本色道久久99精品综合| 久久一区亚洲| 日韩一区二区精品葵司在线| 欧美精品一二三| 亚洲桃花岛网站| 亚洲综合二区| 怡红院av一区二区三区| 欧美成人一区二区三区在线观看| 欧美不卡高清| 亚洲综合精品四区| 久久超碰97人人做人人爱| 在线精品国精品国产尤物884a| 亚洲欧洲日产国产网站| 欧美日韩在线亚洲一区蜜芽| 羞羞答答国产精品www一本| 欧美在线观看一二区| 亚洲人线精品午夜| 亚洲性感美女99在线| 在线免费观看欧美| 日韩一区二区免费高清| 一区二区三区在线免费播放| 91久久精品国产| 国产一区二区三区奇米久涩| 亚洲国产精品999| 国产午夜亚洲精品不卡| 亚洲国产国产亚洲一二三| 国产精品免费区二区三区观看| 久久婷婷一区| 国产精品久久久爽爽爽麻豆色哟哟| 久久亚洲一区二区| 国产精品国产a级| 欧美国产日韩一区二区在线观看| 国产精品久久久久久久久久尿 | 久久成人精品一区二区三区| 欧美jjzz| 久久尤物视频| 国产毛片一区| 99精品视频免费全部在线| 伊人精品在线| 午夜精品久久久久久久99黑人| 一本色道久久| 欧美福利电影网| 可以免费看不卡的av网站| 国产精品日日做人人爱| 99国产精品99久久久久久粉嫩| 亚洲国产精品一区二区久| 欧美一级视频| 欧美一区二区精美| 国产精品亚洲精品| 在线亚洲一区二区| 中国女人久久久| 欧美日韩国产va另类| 亚洲国产福利在线| 亚洲精品国产系列| 免费av成人在线| 欧美肥婆在线| 亚洲国产一区二区三区青草影视 | 亚洲国产精品va在线看黑人动漫 | 性8sex亚洲区入口| 国产精品久久婷婷六月丁香| 日韩亚洲欧美中文三级| 亚洲少妇一区| 欧美午夜精彩| 亚洲在线观看视频网站| 亚洲一区二区三区精品在线| 欧美日韩午夜激情| 亚洲视频导航| 欧美一区日韩一区| 国产一区二区三区四区hd| 久久av在线| 欧美激情视频一区二区三区不卡| 亚洲激情av在线| 欧美激情精品久久久六区热门 | 欧美一级黄色录像| 久久这里有精品视频| 亚洲福利视频二区| 欧美激情国产日韩| 中文日韩电影网站| 久久久久久久999精品视频| 精品av久久久久电影| 欧美成人69av| 亚洲性图久久| 欧美a级在线| 亚洲美女黄网| 国产九九精品视频| 久久亚洲一区二区| 亚洲毛片在线观看| 久久福利毛片| 亚洲人成网站在线播| 欧美午夜精品久久久久免费视| 亚洲欧美自拍偷拍| 欧美激情国产日韩精品一区18| 一二三区精品| 狠狠色狠狠色综合日日五 | 性欧美18~19sex高清播放| 老司机精品导航| 一区二区av在线| 国产亚洲精品久久飘花| 欧美成人精品| 午夜精品在线视频| 亚洲福利在线观看| 久久aⅴ国产欧美74aaa| 亚洲精品国产精品国自产观看浪潮| 国产精品av久久久久久麻豆网| 欧美中在线观看| 夜夜嗨av一区二区三区四区| 久久躁狠狠躁夜夜爽| 亚洲在线国产日韩欧美| 亚洲国产日韩欧美综合久久| 国产精品久久久久7777婷婷| 久久在精品线影院精品国产| 亚洲视频一区| 亚洲精品四区| 欧美激情亚洲激情| 久久久久久精| 欧美中文字幕第一页| 亚洲最黄网站| 亚洲国产婷婷| 国产在线拍揄自揄视频不卡99| 欧美日韩视频在线一区二区 | 欧美亚洲尤物久久| 一区二区三区久久| 亚洲人成人99网站| 欧美二区在线播放| 免费成人黄色| 久久免费高清视频| 久久精品国产欧美激情| 亚洲一区二区欧美| 一本色道**综合亚洲精品蜜桃冫| 亚洲欧洲三级电影| 在线观看91精品国产麻豆| 国产日韩欧美综合精品| 国产精品一二三| 国产精品美女久久久久久2018| 欧美日韩国产色综合一二三四 | 一二三四社区欧美黄| 亚洲乱码国产乱码精品精可以看| 亚洲国产成人午夜在线一区| 黄色成人片子| 亚洲成色精品| 亚洲第一综合天堂另类专| 一区二区视频在线观看| 有码中文亚洲精品| 在线精品视频一区二区| 亚洲国产精品悠悠久久琪琪 | 欧美三级视频在线播放| 欧美日韩人人澡狠狠躁视频| 欧美日韩精品二区| 欧美亚一区二区| 国产乱码精品一区二区三| 国产人成精品一区二区三| 国产亚洲精品资源在线26u| 精品成人在线| 91久久精品网| 亚洲私人影院| 欧美在线视频a| 噜噜噜91成人网| 91久久夜色精品国产网站| 亚洲精品国产精品乱码不99 | 欧美激情bt| 99精品免费| 欧美亚洲综合久久| 久久午夜电影网| 欧美区视频在线观看| 国产精品av免费在线观看| 国产日韩在线看| 亚洲精品色婷婷福利天堂| 亚洲午夜精品福利| 久久久亚洲国产天美传媒修理工| 欧美国产日韩在线观看| 99热精品在线观看| 久久精品国产久精国产思思| 欧美大片免费久久精品三p | 国产精品日韩久久久久| 韩国成人精品a∨在线观看| 亚洲日产国产精品| 亚洲欧美综合| 欧美国产丝袜视频| 亚洲在线成人| 欧美成人激情视频| 国产午夜亚洲精品不卡| 在线视频欧美精品| 久久综合中文| 一区二区三区成人| 裸体歌舞表演一区二区| 国产精品亚洲网站| 亚洲免费播放| 久久亚洲高清| 亚洲性av在线| 欧美精品色综合| 精品999久久久| 午夜精品久久久久久久久| 欧美激情一区二区三区在线视频| 亚洲免费在线| 欧美三级视频在线播放| 亚洲精品久久久久久久久久久久久 | 欧美激情在线观看| 怡红院av一区二区三区| 欧美怡红院视频| 中文在线一区|