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

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>
            老司机一区二区三区| 亚洲人成在线观看| 免费成人高清在线视频| 亚洲欧美美女| 欧美成人午夜视频| 毛片基地黄久久久久久天堂| 国产精品igao视频网网址不卡日韩 | 欧美在线日韩| 午夜在线视频观看日韩17c| 欧美激情精品久久久久久久变态 | 国产一区自拍视频| 亚洲性视频网站| 中日韩美女免费视频网站在线观看| 久久精品一本| 久久亚洲综合色| 国产精品自拍在线| 亚洲欧美日韩系列| 久久国产欧美日韩精品| 国产乱码精品一区二区三区不卡| 在线一区观看| 午夜电影亚洲| 国产精品日产欧美久久久久| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美一级视频精品观看| 欧美在线看片| 国产视频精品网| 欧美中文字幕在线播放| 老司机午夜免费精品视频| 国产一区日韩二区欧美三区| 欧美一级专区免费大片| 久久久久久久久久久一区| 极品av少妇一区二区| 久久漫画官网| 亚洲黄色免费电影| 亚洲乱码国产乱码精品精可以看| 欧美激情1区| 一区二区高清在线| 欧美激情亚洲综合一区| 亚洲精品乱码久久久久久久久| 日韩一二三在线视频播| 欧美先锋影音| 欧美在线观看天堂一区二区三区 | 亚洲精品在线二区| 亚洲欧美日韩精品在线| 国产真实乱子伦精品视频| 久久婷婷国产综合精品青草| 亚洲黄色性网站| 亚洲欧美日韩中文播放| 精品99一区二区| 欧美精品在线视频| 午夜精品久久久99热福利| 鲁鲁狠狠狠7777一区二区| 亚洲精品一区二区在线| 国产精品区一区二区三区| 欧美综合二区| 亚洲人成人77777线观看| 午夜精品视频一区| 亚洲成人在线免费| 国产精品高潮呻吟久久av黑人| 欧美一区二区成人| 亚洲精品久久久久| 久久se精品一区精品二区| 在线观看日韩www视频免费| 欧美日韩妖精视频| 久久精品一区| 亚洲视频一区| 亚洲国产高清在线| 久久精品夜色噜噜亚洲aⅴ| 日韩视频国产视频| 国产在线一区二区三区四区| 欧美日韩成人一区二区| 午夜综合激情| 日韩一区二区高清| 另类天堂视频在线观看| 亚洲综合首页| 日韩视频免费在线| 亚洲盗摄视频| 国产自产高清不卡| 国产精品入口日韩视频大尺度| 浪潮色综合久久天堂| 亚洲在线黄色| 亚洲经典视频在线观看| 另类图片国产| 久久成人18免费网站| 亚洲一区二区在线免费观看视频| 亚洲丁香婷深爱综合| 国产欧美日韩一区二区三区在线| 欧美日韩国产123区| 欧美国产日韩一区| 免费观看久久久4p| 久久蜜臀精品av| 欧美中文在线字幕| 午夜日韩电影| 午夜精品免费在线| 亚洲一区欧美一区| 中文一区在线| 国产精品99久久久久久白浆小说 | 欧美成人在线网站| 久久综合色播五月| 老色鬼久久亚洲一区二区| 久久精品国产在热久久| 欧美亚洲免费电影| 亚洲一区二区三区四区五区午夜 | 欧美va亚洲va国产综合| 久久www免费人成看片高清| 夜夜夜久久久| 一区二区三区日韩| 亚洲视频精品在线| 亚洲欧美激情一区二区| 欧美一级一区| 久久精品国内一区二区三区| 久久国产精品99国产| 久久久久久精| 蜜桃久久av| 亚洲国产精品一区二区尤物区| 亚洲风情亚aⅴ在线发布| 最近看过的日韩成人| 亚洲精品无人区| 亚洲天堂av在线免费观看| 亚洲综合色网站| 欧美专区中文字幕| 免费91麻豆精品国产自产在线观看| 玖玖国产精品视频| 欧美日韩午夜激情| 国产免费一区二区三区香蕉精| 国产在线日韩| 亚洲欧洲日韩女同| 亚洲视频中文字幕| 久久精品一区二区| 亚洲电影在线免费观看| 一区二区三区福利| 久久av一区| 欧美—级a级欧美特级ar全黄| 国产精品成人免费精品自在线观看| 国产精品久久久久久av下载红粉 | 欧美成人午夜激情视频| 亚洲精品三级| 欧美一级大片在线观看| 欧美不卡激情三级在线观看| 国产精品www| 亚洲第一视频网站| 亚洲一区二区三区涩| 久久中文字幕一区| 亚洲美女黄色| 久久久91精品| 国产精品不卡在线| 国产一区二区三区黄| 夜夜嗨网站十八久久| 久久久高清一区二区三区| 亚洲激情图片小说视频| 午夜在线播放视频欧美| 欧美日韩国产123区| 国内成+人亚洲| 亚洲调教视频在线观看| 免费在线日韩av| 一区二区三区黄色| 美女爽到呻吟久久久久| 亚洲一区二区三区视频| 欧美 亚欧 日韩视频在线| 国产欧美日韩视频一区二区三区 | 国产夜色精品一区二区av| 一区二区三区www| 免费在线视频一区| 亚洲欧美资源在线| 欧美视频一区二区三区在线观看| 在线观看日韩精品| 久久精品麻豆| 亚洲先锋成人| 欧美日韩色婷婷| 很黄很黄激情成人| 欧美一区2区三区4区公司二百| 亚洲国产裸拍裸体视频在线观看乱了 | 99精品欧美一区二区蜜桃免费| 久久尤物视频| 精品成人一区二区三区| 性亚洲最疯狂xxxx高清| 在线亚洲高清视频| 欧美日韩影院| 亚洲少妇中出一区| 亚洲精品一区二区三区99| 免费观看国产成人| 在线免费观看欧美| 国产精品爱久久久久久久| 一区二区三区 在线观看视频| 欧美丰满高潮xxxx喷水动漫| 久久丁香综合五月国产三级网站| 国产精品久久久久久模特| 中国女人久久久| 亚洲欧洲一级| 欧美日韩1区| 亚洲视频一区二区| 亚洲毛片在线| 欧美午夜精品久久久久久孕妇 | 欧美日韩成人在线播放| 日韩亚洲一区二区| 亚洲国产高清一区| 欧美激情网站在线观看| 制服诱惑一区二区| 亚洲视频欧美视频| 国产日韩在线一区|