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

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>
            欧美成人精品影院| 欧美在线网址| 欧美日韩免费观看一区二区三区 | 欧美不卡视频一区发布| 久久成人久久爱| 精久久久久久| 免费成人av| 欧美激情一区二区在线 | 欧美日韩一区成人| 中文日韩电影网站| 在线亚洲欧美视频| 国产日韩欧美不卡在线| 久久夜色精品亚洲噜噜国产mv| 久久久久国产一区二区三区四区| 亚洲国产清纯| 夜夜嗨av一区二区三区四季av| 国产精品九色蝌蚪自拍| 久久精品国产96久久久香蕉| 久久精品导航| 99精品国产在热久久下载| 在线视频日韩| 亚洲成色999久久网站| 亚洲国内自拍| 欧美三级电影一区| 久久在线视频| 欧美日韩影院| 美女网站久久| 国产精品初高中精品久久| 久久精品亚洲一区二区| 欧美大片在线观看一区| 亚洲一区二区三区国产| 久久久久久久网| 亚洲一区二区三区激情| 久久人人97超碰精品888 | 国产亚洲精品一区二区| 欧美激情五月| 国产偷自视频区视频一区二区| 亚洲电影免费| 国产日韩一区二区三区在线| 亚洲国产精品久久久久婷婷884 | 亚洲人成在线播放| 亚洲综合日韩在线| 亚洲精品在线观| 久久er精品视频| 亚洲一区二区三区四区中文| 久久综合色影院| 久久精品亚洲一区二区三区浴池| 欧美日韩1234| 亚洲国产精品嫩草影院| 国产一区欧美日韩| 亚洲一级高清| 亚洲在线播放| 欧美日韩卡一卡二| 亚洲国产专区| 亚洲国产欧美一区二区三区同亚洲| 亚洲一区二区三区在线看| 夜夜夜久久久| 欧美黑人国产人伦爽爽爽| 美女精品一区| 精品1区2区3区4区| 性欧美video另类hd性玩具| 亚洲欧美日韩精品久久久| 欧美久久婷婷综合色| 亚洲国产精品一区制服丝袜 | 欧美第一黄网免费网站| 麻豆精品视频在线观看视频| 国产午夜精品麻豆| 午夜国产欧美理论在线播放 | 亚洲激情影视| 麻豆精品在线观看| 欧美福利电影在线观看| 在线激情影院一区| 久久久久久成人| 欧美成人在线免费观看| 亚洲国产精品第一区二区| 久久综合中文字幕| 亚洲国产精品精华液网站| 亚洲欧洲一区二区三区在线观看 | 一区二区电影免费观看| 一区二区三区视频在线| 欧美视频一区在线| 亚洲性夜色噜噜噜7777| 欧美中文字幕在线| 一区二区在线观看视频在线观看| 久久精品国产精品亚洲综合| 免费看黄裸体一级大秀欧美| 亚洲三级影片| 欧美日韩网址| 亚洲欧美在线视频观看| 另类亚洲自拍| 夜夜狂射影院欧美极品| 国产乱码精品一区二区三区av| 亚洲尤物视频在线| 老司机午夜免费精品视频| 91久久午夜| 欧美视频免费| 久久国产夜色精品鲁鲁99| 欧美国产日韩一区二区在线观看| 99国产精品久久| 国产欧美日韩三级| 欧美jjzz| 亚洲综合首页| 亚洲福利在线观看| 欧美一区二区三区婷婷月色| 亚洲国产精品传媒在线观看 | 欧美成人午夜剧场免费观看| 一区二区三区国产盗摄| 久久综合狠狠| 亚洲社区在线观看| 激情文学综合丁香| 欧美日韩综合| 老鸭窝91久久精品色噜噜导演| 99国产精品久久久久久久成人热| 久久人人97超碰精品888| 亚洲美女中文字幕| 激情综合色综合久久综合| 欧美日韩亚洲一区二区| 久久一区二区三区国产精品| 夜夜嗨av色一区二区不卡| 欧美高清自拍一区| 久久国产精品亚洲va麻豆| 一区二区三区精品国产| 在线观看欧美日本| 国产区二精品视| 欧美日韩综合在线免费观看| 麻豆国产精品一区二区三区 | 美女精品视频一区| 欧美一区二区视频在线观看| 一区二区三区视频免费在线观看 | 国产精品国产三级国产aⅴ无密码| 久久久久久综合网天天| 欧美一级久久| 亚洲免费在线精品一区| 99在线视频精品| 亚洲精品国产系列| 亚洲电影在线| 亚洲大胆视频| 欧美激情国产精品| 欧美a级在线| 噜噜噜久久亚洲精品国产品小说| 欧美一区国产二区| 欧美一区二区黄色| 亚洲欧美中文另类| 午夜亚洲性色福利视频| 在线天堂一区av电影| 一本色道久久99精品综合| 亚洲精品国产欧美| 亚洲每日更新| 一本色道久久综合亚洲精品婷婷| 日韩视频在线观看一区二区| 亚洲六月丁香色婷婷综合久久| 亚洲激情电影在线| 亚洲精品看片| 一区二区不卡在线视频 午夜欧美不卡在 | 国产主播一区| 精品二区久久| 亚洲黄色尤物视频| 亚洲精品少妇| 亚洲无限乱码一二三四麻| 亚洲综合国产精品| 欧美在线免费观看| 乱码第一页成人| 亚洲国产成人av| 99视频精品全部免费在线| 夜夜夜久久久| 欧美在线观看www| 老司机精品导航| 欧美精品在线一区| 国产精品久久九九| 国产在线拍偷自揄拍精品| 亚洲国产精品ⅴa在线观看| 亚洲精品一区中文| 午夜精品一区二区三区电影天堂 | 一本大道久久精品懂色aⅴ| 亚洲欧美精品一区| 久久夜色撩人精品| 亚洲精品中文在线| 新片速递亚洲合集欧美合集| 裸体一区二区| 国产精品hd| 亚洲国产aⅴ天堂久久| 亚洲无线一线二线三线区别av| 久久国产一区二区| 亚洲精品国产无天堂网2021| 亚洲一区精品视频| 欧美成人一区二区三区在线观看| 国产精品久久久久77777| 国内精品免费在线观看| 一区二区三区欧美亚洲| 久久亚洲电影| 亚洲天堂av在线免费| 久久亚洲一区二区| 国产精品一二三视频| 亚洲精品视频在线观看网站 | 亚洲国产日韩欧美在线99| 亚洲小视频在线观看| 欧美国产综合视频| 香蕉久久夜色精品国产| 欧美色图一区二区三区| 亚洲国内高清视频|