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

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>
            一区二区高清在线| 亚洲成色精品| 亚洲视频国产视频| 欧美午夜不卡在线观看免费| 亚洲视频中文字幕| 一区二区黄色| 国产一区深夜福利| 男人的天堂成人在线| 免费不卡在线观看| 中文在线一区| 先锋影音网一区二区| 亚洲第一综合天堂另类专| 欧美国产精品日韩| 欧美三级网址| 久久一区二区三区四区五区| 欧美成人中文字幕| 午夜欧美精品久久久久久久| 久久久99精品免费观看不卡| 亚洲精品乱码久久久久久按摩观 | 精品福利av| 亚洲国产精品久久精品怡红院| 欧美日韩国产麻豆| 久久精品综合一区| 欧美激情一区二区三区在线视频 | 亚洲免费视频一区二区| 欧美亚洲尤物久久| 日韩一级视频免费观看在线| 午夜精品久久久久久久蜜桃app | 韩国成人精品a∨在线观看| 欧美h视频在线| 国产精品欧美日韩一区| 欧美激情精品久久久久| 国产精品一区二区a| 亚洲国产婷婷综合在线精品 | 亚洲久色影视| 一区二区欧美在线| 亚洲国产精品视频一区| 亚洲免费在线视频| 亚洲裸体俱乐部裸体舞表演av| 亚洲欧美日韩在线高清直播| 亚洲免费播放| 麻豆freexxxx性91精品| 久久国产精彩视频| 欧美午夜片在线观看| 欧美电影免费| 国产综合久久久久久鬼色| 日韩视频三区| 亚洲精品欧美极品| 麻豆精品精品国产自在97香蕉| 欧美中文日韩| 国产精品自拍网站| 亚洲一区二区视频在线| 亚洲一区二区精品在线| 欧美精品在线网站| 亚洲大胆美女视频| 亚洲国产精品黑人久久久 | 亚洲国产成人tv| 精品1区2区| 久久精品最新地址| 久久免费国产精品1| 国产丝袜美腿一区二区三区| 亚洲一区黄色| 欧美一区二区视频在线| 国产农村妇女毛片精品久久麻豆 | 亚洲精品精选| 亚洲美女视频在线观看| 欧美黄免费看| 91久久精品一区| 一本色道久久88精品综合| 欧美日韩免费高清| 99精品视频免费全部在线| 亚洲一区观看| 国产美女精品| 久久久青草婷婷精品综合日韩 | 久久久99精品免费观看不卡| 国产精品亚洲成人| 欧美在线视频二区| 欧美成人午夜77777| 最新亚洲一区| 欧美日韩一区综合| 午夜精品久久| 蜜桃久久精品一区二区| 亚洲精品美女在线观看播放| 欧美午夜精品久久久久久久| 一区二区三区四区五区在线| 欧美在线免费视频| 亚洲国产日韩在线| 欧美日韩亚洲系列| 欧美伊人影院| 亚洲日韩欧美视频| 欧美在线不卡视频| 亚洲黄色免费| 国产精品久久久久久久免费软件| 香蕉久久精品日日躁夜夜躁| 欧美高清在线一区二区| 妖精成人www高清在线观看| 国产精品永久免费| 蜜臀av性久久久久蜜臀aⅴ| 一本色道久久综合亚洲精品高清 | 亚洲精品久久视频| 国产精品久久久久久久午夜片 | 99国内精品久久| 久久久久久久久久看片| 亚洲精品一区二区三区婷婷月| 欧美日韩视频免费播放| 久久精品中文| 99精品免费视频| 欧美暴力喷水在线| 欧美一区视频在线| 一本久久综合亚洲鲁鲁| 极品少妇一区二区三区| 欧美午夜电影在线| 欧美成人综合| 久久青草欧美一区二区三区| 99综合精品| 亚洲国产女人aaa毛片在线| 久久成人精品| 亚洲自拍偷拍网址| 99精品欧美一区二区蜜桃免费| 黑人巨大精品欧美一区二区| 国产精品国产成人国产三级| 欧美成人性生活| 久久综合影视| 久久精品国产欧美激情| 亚洲女爱视频在线| 在线视频亚洲| 亚洲精品一区二区三区av| 欧美77777| 另类激情亚洲| 久久久久久夜| 久久精品一区二区国产| 欧美一区激情| 久久爱www久久做| 亚洲欧美三级在线| 亚洲系列中文字幕| 亚洲一区二区视频在线观看| 亚洲人成在线播放| 亚洲三级性片| 亚洲精品社区| 一本久道久久综合婷婷鲸鱼| 亚洲人成人一区二区三区| 91久久精品日日躁夜夜躁欧美 | 国产精品久久久久久久app| 欧美日韩理论| 国产精品成人一区| 国产精品夫妻自拍| 国产精品一卡二卡| 国产欧美日韩麻豆91| 国产日韩欧美综合| 精品91在线| 亚洲国产综合91精品麻豆| 91久久国产精品91久久性色| 亚洲日韩欧美视频一区| 夜夜爽99久久国产综合精品女不卡 | 午夜精品短视频| 欧美一区二区三区成人| 久久精品理论片| 免费人成精品欧美精品| 欧美精品久久久久久| 欧美日韩一区二区在线| 国产精品视频免费观看www| 国产乱码精品一区二区三区五月婷 | 精品91在线| 亚洲三级电影在线观看| 亚洲一级黄色av| 久久精品午夜| 亚洲国产91精品在线观看| 妖精成人www高清在线观看| 亚洲尤物视频网| 美脚丝袜一区二区三区在线观看 | 亚洲第一久久影院| 一本色道88久久加勒比精品| 午夜宅男欧美| 欧美激情网站在线观看| 亚洲色图在线视频| 久久久91精品| 欧美体内谢she精2性欧美| 国产亚洲欧美一区在线观看| 亚洲国产三级在线| 欧美一区二区精品久久911| 欧美成年视频| 亚洲在线视频| 欧美精品一区二区久久婷婷| 国产欧美韩日| 日韩亚洲不卡在线| 久久人人精品| 亚洲一区久久| 欧美成年人视频网站| 国产三级欧美三级| 夜夜爽www精品| 男人插女人欧美| 亚洲欧美色婷婷| 欧美日韩一区二区三区高清| 精品1区2区3区4区| 欧美一级片一区| 99精品欧美一区二区三区综合在线| 久久精品欧洲| 国产婷婷色一区二区三区| 中文国产成人精品| 91久久国产综合久久|