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

VC定時器 SetTimer


VC定時器 SetTimer 怎么用阿
[此問題的推薦答案]
SetTimer函數的用法
1 )用WM_TIMER來設置定時器

先請看SetTimer這個API函數的原型

UINT_PTR SetTimer(
HWND hWnd, // 窗口句柄
UINT_PTR nIDEvent, // 定時器ID,多個定時器時,可以通過該ID判斷是哪個定時器
UINT uElapse, // 時間間隔,單位為毫秒
TIMERPROC lpTimerFunc // 回調函數
);

例如
SetTimer(m_hWnd,1,1000,NULL); //一個1秒觸發一次的定時器
在MFC程序中SetTimer被封裝在CWnd類中,調用就不用指定窗口句柄了

于是SetTimer函數的原型變為:

UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))

當使用SetTimer函數的時候,就會生成一個計時器。函數中nIDEvent指的是計時器的標識,也就是名字。nElapse指的是時間間隔,
也就是每隔多長時間觸發一次事件。第三個參數是一個回調函數,在這個函數里,放入你想要做的事情的代碼,你可以將它設定為NULL,
也就是使用系統默認的回調函數,系統默認認的是onTime函數。這個函數怎么生成的呢?你需要在需要計時器的類的生成onTime函數:
在ClassWizard里,選擇需要計時器的類,添加WM_TIME消息映射,就自動生成onTime函數了。然后在函數里添加代碼,讓代碼實現功能。
每隔一段時間就會自動執行一次。

例:

SetTimer(1,1000,NULL);

1:計時器的名稱;

1000:時間間隔,單位是毫秒;

NULL:使用onTime函數。

當不需要計時器的時候調用KillTimer(nIDEvent);

例如:KillTimer(1);

2) 調用回調函數

此方法首先寫一個如下格式的回調函數

void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);
然后再用SetTimer(1,100,TimerProc)函數來建一個定時器,第三個參數就是回調函數地址。

二. 或許你會問,如果我要加入兩個或者兩個以上的 timer怎么辦?

繼續用SetTimer函數吧,上次的timer的ID是1,這次可以是2,3,4。。。。

SetTimer(2,1000,NULL);

SetTimer(3,500,NULL);

嗯,WINDOWS會協調他們的。當然onTimer函數體也要發生變化,要在函數體內添加每一個timer的處理代碼:

onTimer(nIDEvent)

{
switch(nIDEvent)

{
case 1:........;
break;
case 2:.......;
break;
case 3:......;
break;
}
}
本貼來自ZDNetChina中文社區 http://bbs.zdnet.com.cn ,本貼地址:http://bbs.zdnet.com.cn/viewthread.php?tid=313294


VC定時器 SetTimer 怎么用阿
Timer事件,即定時器事件,是在游戲編程中,經常使用的一個事件。借助它可以產生定時執行動作的效果。這篇文章,就和大家一起探討一下如何使用SetTimer()函數。
1、SetTimer定義在那里?

SetTimer表示的是定義個定時器。根據定義指定的窗口,在指定的窗口(CWnd)中實現OnTimer事件,這樣,就可以相應事件了。

SetTimer有兩個函數。一個是全局的函數::SetTimer()

UINT SetTimer(
HWND hWnd, // handle of window for timer messages
UINT nIDEvent, // timer identifier
UINT uElapse, // time-out value
TIMERPROC lpTimerFunc // address of timer procedure
);

其中hWnd 是指向CWnd的指針,即處理Timer事件的窗口類。說道窗口類(CWnd),我們有必要來看一下CWnd的繼承情況:CWnd有以下子類:CFrameWnd,CDialog,CView,CControlBar等類。這也意味這些類中都可以定義SetTimer事件。

同時,SetTimer()在CWnd中也有定義,即SetTimer()是CWnd的一個成員函數。CWnd的子類可以調用該函數,來設置觸發器。

UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );

參數含義:

nIDEvent:是指設置這個定時器的iD,即身份標志,這樣在OnTimer()事件中,才能根據不同的定時器,來做不同的事件響應。這個ID是一個無符號的整型。

nElapse

是指時間延遲。單位是毫秒。這意味著,每隔nElapse毫秒系統調用一次Ontimer()。

void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD)

Specifies the address of the application-supplied TimerProc callback function that processes the WM_TIMER messages. If this parameter is NULL, the WM_TIMER messages are placed in the application’s message queue and handled by the CWnd object。

意思是,指定應用程序提供的TimerProc回調函數的地址,來處里這個Timer事件。如果是NULL,處理這個Timer事件的定義這個Timer的CWnd對象。他將WM_TIMER消息傳遞給這個對象,通過實現這個對象的OnTimer()事件來處理這個Timer事件。

所以,一般情況下,我們將這個值設為NULL,有設置該定時器的對象中的OnTimer()函數來處理這個事件。

同樣的,我們再看看KillTimer()和OnTimer()的定義:

KillTimer同SetTimer()一樣,他也有兩個,一個是全局的::KillTimer(),另一個是CWnd的一個函數。他的聲明如下:


//全局函數

BOOL KillTimer(
HWND hWnd, // handle of window that installed timer
UINT uIDEvent // timer identifier
);

//CWnd函數

BOOL KillTimer( int nIDEvent );

這兩個函數表示的意思是將iD為nIDEVENT的定時器移走。使其不再作用。其用法如同SetTimer()一樣。

再看看OnTimer()

CWnd::OnTimer
afx_msg void OnTimer( UINT nIDEvent );

ontimer()是響應CWnd對象產生的WM_Timer消息。nIDEvent表示要響應TIMER事件的ID。

二、Timer事件的使用:

由以上的分析,我們應該很清楚,如何來使用Timer事件。假定我們在視圖上畫一個漸變的動畫。我們首先在菜單欄上添加一個菜單項,給這個菜單添加命令響應:

pView->SetTimer(1,1000,NULL);//pView是視圖類的指針,這里是在視圖類當中設置一個定時器。

添加完畢,再給視圖類添加一個WM_Timer事件的相應。在OnTimer()函數中編寫漢書,進行相應。

如此,就能做出動畫。
本貼來自ZDNetChina中文社區 http://bbs.zdnet.com.cn ,本貼地址:http://bbs.zdnet.com.cn/viewthread.php?tid=313294

 

 

 

posted on 2008-10-25 09:02 wrh 閱讀(4092) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

統計

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美成人综合在线| 亚洲国产精品久久精品怡红院| 久久aⅴ国产欧美74aaa| 猛干欧美女孩| 夜色激情一区二区| 欧美一区二区大片| 欧美一区国产二区| 久久久www成人免费毛片麻豆| 麻豆国产精品va在线观看不卡| 亚洲图片欧洲图片av| 亚洲国产一区二区三区a毛片| 小处雏高清一区二区三区 | 午夜精品福利一区二区三区av| 中文在线不卡| 欧美专区一区二区三区| 久久国产精品电影| 久久色中文字幕| 亚洲人成久久| 欧美亚洲一区二区在线| 亚洲人成在线观看网站高清| 久色成人在线| 日韩一区二区免费高清| 亚洲经典一区| 欧美人成网站| 嫩草国产精品入口| 午夜精品福利一区二区三区av| 亚洲茄子视频| 欧美日韩一区三区| 亚洲男人的天堂在线| 亚洲免费中文字幕| 国产在线视频欧美| 欧美电影在线观看| 欧美日韩久久精品| 亚洲欧美国内爽妇网| 午夜伦理片一区| 亚洲综合三区| 国产麻豆日韩| 蜜臀久久99精品久久久久久9| 久久尤物电影视频在线观看| 亚洲精品系列| 亚洲一级在线| 国产精品丝袜91| 亚洲国产视频一区| 国产在线欧美| 久久综合图片| 国内精品写真在线观看| 欧美一区视频在线| 久久久国产亚洲精品| 亚洲免费av观看| 亚洲在线观看视频网站| 亚洲国产美女| 亚洲一区二区三区涩| 在线成人亚洲| 亚洲视频网在线直播| 悠悠资源网亚洲青| 亚洲少妇在线| 91久久精品国产91久久| 亚洲欧美卡通另类91av| 亚洲精品男同| 久久超碰97人人做人人爱| 99国内精品久久| 久久精品一本久久99精品| 一区二区三区 在线观看视频| 欧美亚洲综合另类| 亚洲一区二区三区在线看| 久久这里有精品视频| 午夜在线电影亚洲一区| 欧美国产日本在线| 老妇喷水一区二区三区| 国产精品日韩在线观看| 亚洲乱码国产乱码精品精98午夜| 黄网站免费久久| 午夜国产精品视频免费体验区| 一区二区成人精品| 欧美国产日韩亚洲一区| 免费不卡中文字幕视频| 国产私拍一区| 亚洲午夜一二三区视频| 亚洲图色在线| 欧美色图首页| 日韩午夜电影| 亚洲美女在线一区| 欧美成人精品高清在线播放| 久久综合狠狠| 韩国久久久久| 欧美在线国产| 久久久久高清| 国产亚洲欧美一区| 在线午夜精品自拍| 欧美日韩精品是欧美日韩精品| 欧美激情一区二区三区在线视频| 国产亚洲精品福利| 男人的天堂亚洲在线| 欧美日韩成人一区| 洋洋av久久久久久久一区| 午夜精品久久久久久久久久久久久| 国产亚洲成av人在线观看导航| 国产午夜精品美女毛片视频| 国产精品福利网站| 国产精品第十页| 国产精品成人免费| 一区二区电影免费观看| 久久深夜福利免费观看| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲专区在线| 欧美亚洲日本国产| 欧美一区影院| 亚洲国产一区二区三区a毛片| 欧美午夜在线视频| 国产一区二区三区不卡在线观看| 欧美黑人国产人伦爽爽爽| 亚洲色图制服丝袜| 亚洲激情影院| a4yy欧美一区二区三区| 久久亚洲精品欧美| 亚洲午夜精品一区二区三区他趣| 欧美高清成人| 欧美a级大片| 亚洲精品在线电影| 午夜精品999| 国内视频一区| 欧美国产一区在线| 久久成人人人人精品欧| 开心色5月久久精品| 久久综合给合| 亚洲激情视频网| 中国成人亚色综合网站| 国产精品试看| 六月婷婷久久| 91久久精品一区二区三区| 欧美国产日韩视频| 亚洲自拍三区| 欧美福利精品| 亚洲欧美色一区| 亚洲福利视频网站| 国产精品日产欧美久久久久| 久久久久高清| 中文欧美日韩| 欧美高清视频www夜色资源网| 亚洲综合色噜噜狠狠| 在线精品国产欧美| 国产精品看片你懂得| 欧美v日韩v国产v| 香蕉久久精品日日躁夜夜躁| 亚洲激情小视频| 久久免费视频在线观看| 亚洲永久免费视频| 亚洲欧洲在线免费| 韩国自拍一区| 国产乱码精品一区二区三| 欧美国产欧美综合 | 欧美一区二区三区免费观看| 亚洲国产精品电影在线观看| 欧美在线观看视频一区二区三区| 日韩视频永久免费| 在线播放亚洲一区| 国产欧美日韩一区二区三区| 欧美精品一区二区三区视频| 久久久久99| 欧美影院在线| 日韩视频在线观看一区二区| 国产亚洲欧美激情| 欧美一区二区三区四区视频| 日韩午夜剧场| 亚洲精品综合在线| 亚洲国内自拍| 欧美顶级艳妇交换群宴| 久久久久综合网| 欧美中文日韩| 欧美在线播放高清精品| 亚洲专区一区二区三区| 亚洲无限乱码一二三四麻| 亚洲每日更新| 亚洲高清一区二| 免费欧美日韩| 欧美成人首页| 久久一区二区三区av| 欧美一区视频| 亚洲欧美资源在线| 亚洲免费影院| 亚洲在线网站| 午夜视频久久久| 久久国产欧美日韩精品| 久久久精品999| 久久蜜桃精品| 欧美国产在线电影| 亚洲国产日韩欧美一区二区三区| 亚洲电影有码| 日韩午夜一区| 亚洲免费在线精品一区| 欧美在线观看一区二区| 久久久青草青青国产亚洲免观| 久久综合网hezyo| 欧美激情综合| 国产精品蜜臀在线观看| 国产农村妇女精品| 狠狠色噜噜狠狠色综合久| 在线观看日韩av电影| 亚洲精品综合精品自拍| 亚洲一区二区免费看|