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

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 閱讀(4091) 評論(0)  編輯 收藏 引用


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


導航

<2010年11月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統計

常用鏈接

留言簿(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>
            136国产福利精品导航| 久久久久综合一区二区三区| 国产一区视频网站| 欧美v国产在线一区二区三区| 久久久蜜桃一区二区人| 亚洲精品欧美一区二区三区| 亚洲一区日韩| 亚洲性视频网站| 久久久久久穴| 久久久久99| 欧美国产1区2区| 99热这里只有精品8| 亚洲日本成人| 免费短视频成人日韩| 国产午夜亚洲精品不卡| 99成人免费视频| 亚洲欧美色婷婷| 国产精品欧美经典| 性久久久久久| 欧美国产一区二区在线观看 | 亚洲校园激情| 亚洲欧美视频在线观看视频| 亚洲视频一区二区在线观看| 国产欧美一区视频| 欧美岛国激情| 亚洲欧美在线x视频| 亚洲精品色婷婷福利天堂| 激情综合色丁香一区二区| 蜜桃av一区| 久久精彩免费视频| 夜夜夜精品看看| 久久精品国产99精品国产亚洲性色 | 欧美一区二区在线视频| 亚洲另类自拍| 麻豆精品精品国产自在97香蕉| 欧美韩日一区二区三区| 午夜视频在线观看一区| 欧美99在线视频观看| 老司机免费视频一区二区| 美女网站在线免费欧美精品| 亚洲精品一区二区三区蜜桃久| 性欧美超级视频| 国产精品入口麻豆原神| 国产精品免费观看在线| 亚洲无线视频| 在线视频欧美日韩| 亚洲永久在线| 这里只有精品视频| 欧美区在线观看| 国产精品久久夜| 亚洲欧美福利一区二区| 亚洲精品一区二区三区av| 久久九九久久九九| 玖玖玖国产精品| 日韩一级裸体免费视频| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲精品在线三区| 久久久久久亚洲综合影院红桃| 99热在这里有精品免费| 欧美成va人片在线观看| 在线观看一区| 亚洲无亚洲人成网站77777| 欧美激情一区二区三区蜜桃视频 | 欧美日韩国产bt| 久久精品久久综合| 狠狠色香婷婷久久亚洲精品| 好吊妞这里只有精品| 亚洲精品影视在线观看| 亚洲啪啪91| 亚洲高清在线精品| 欧美激情第三页| 欧美日韩国产色综合一二三四 | 欧美日本韩国一区| 日韩午夜在线播放| 一区二区av在线| 国产一区在线视频| 欧美亚州一区二区三区| 欧美日韩精品中文字幕| 亚洲网站在线看| 久久综合网hezyo| 午夜精品一区二区三区在线视 | 亚洲视频免费在线观看| 99精品欧美一区二区蜜桃免费| 国产欧美一区二区视频| 亚洲国产精品99久久久久久久久| 欧美日韩在线播放| 欧美激情久久久久久| 一区在线影院| 在线观看亚洲精品| 亚洲自拍偷拍视频| 久久综合五月| 久久先锋资源| 亚洲一区图片| 夜夜爽99久久国产综合精品女不卡| 亚洲女同精品视频| 一区二区三区波多野结衣在线观看| 一区二区av在线| 久久国产精品久久久久久电车| 夜夜嗨av色一区二区不卡| 蜜桃av一区| 亚洲精品你懂的| 国产欧美精品一区二区色综合 | 久久免费视频在线| 国产精品一二| 性视频1819p久久| 国产网站欧美日韩免费精品在线观看 | 性欧美超级视频| 午夜精品久久久| 韩国福利一区| 欧美国产日本| 欧美一级精品大片| 亚洲黄色片网站| 欧美一区二区三区日韩视频| 国产女同一区二区| 亚洲欧美中日韩| 亚洲日本欧美| 久久人人看视频| 亚洲欧美日韩国产一区| 亚洲高清不卡av| 国产日韩欧美夫妻视频在线观看| 久久久水蜜桃| 亚洲国产1区| 免费在线观看日韩欧美| 西西裸体人体做爰大胆久久久| 国产精品h在线观看| 欧美成人dvd在线视频| 亚洲精品自在在线观看| 免费亚洲电影在线| 久久久九九九九| 久久精品成人| 欧美主播一区二区三区美女 久久精品人| 亚洲高清av| 99国产精品私拍| 午夜精品久久久久久久99热浪潮| 欧美与欧洲交xxxx免费观看| 激情欧美一区二区| 性高湖久久久久久久久| 亚洲毛片网站| 一区二区三区国产在线观看| 亚洲毛片网站| 先锋影音一区二区三区| 欧美在线观看视频| 久久亚洲欧洲| 亚洲福利在线看| 亚洲精品永久免费| 亚洲精品看片| 亚洲欧美卡通另类91av| 亚洲免费网址| 一区二区三区回区在观看免费视频| 亚洲第一精品久久忘忧草社区| 亚洲国产人成综合网站| 在线视频欧美一区| 久久久久久久网| 国产一区二区三区丝袜| 亚洲欧洲日韩在线| 欧美在线黄色| 你懂的成人av| 亚洲一区二区欧美日韩| 狂野欧美性猛交xxxx巴西| 欧美午夜片欧美片在线观看| 国产精品影片在线观看| 亚洲欧洲免费视频| 久久免费精品视频| 亚洲制服欧美中文字幕中文字幕| 久久久久久久一区| 国产一区二区三区直播精品电影| 一区二区不卡在线视频 午夜欧美不卡'| 午夜一级在线看亚洲| 亚洲日本乱码在线观看| 久久久久久自在自线| 国产精品视频网| 一区电影在线观看| 亚洲激情视频在线观看| 欧美电影免费观看| 亚洲精选视频免费看| 亚洲第一精品电影| 性欧美办公室18xxxxhd| 国产视频在线一区二区| 久久av在线看| 久久精品中文字幕一区| 一区二区三区在线视频免费观看| 欧美一进一出视频| 久久久91精品国产一区二区精品| 韩国成人福利片在线播放| 久久婷婷久久一区二区三区| 久久精品久久99精品久久| 亚洲国产福利在线| 一区二区欧美激情| 国内外成人在线视频| 久久久噜噜噜久久| 亚洲国产精品激情在线观看| 亚洲精品日日夜夜| 欧美视频精品在线观看| 久久国产精品一区二区三区| 亚洲深夜福利在线| 欧美激情中文不卡| 亚洲二区在线观看| 欧美ed2k| 亚洲精品一区二区在线| 亚洲精品影视|