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

VC定時(shí)器 SetTimer


VC定時(shí)器 SetTimer 怎么用阿
[此問(wèn)題的推薦答案]
SetTimer函數(shù)的用法
1 )用WM_TIMER來(lái)設(shè)置定時(shí)器

先請(qǐng)看SetTimer這個(gè)API函數(shù)的原型

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

例如
SetTimer(m_hWnd,1,1000,NULL); //一個(gè)1秒觸發(fā)一次的定時(shí)器
在MFC程序中SetTimer被封裝在CWnd類(lèi)中,調(diào)用就不用指定窗口句柄了

于是SetTimer函數(shù)的原型變?yōu)椋?

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

當(dāng)使用SetTimer函數(shù)的時(shí)候,就會(huì)生成一個(gè)計(jì)時(shí)器。函數(shù)中nIDEvent指的是計(jì)時(shí)器的標(biāo)識(shí),也就是名字。nElapse指的是時(shí)間間隔,
也就是每隔多長(zhǎng)時(shí)間觸發(fā)一次事件。第三個(gè)參數(shù)是一個(gè)回調(diào)函數(shù),在這個(gè)函數(shù)里,放入你想要做的事情的代碼,你可以將它設(shè)定為NULL,
也就是使用系統(tǒng)默認(rèn)的回調(diào)函數(shù),系統(tǒng)默認(rèn)認(rèn)的是onTime函數(shù)。這個(gè)函數(shù)怎么生成的呢?你需要在需要計(jì)時(shí)器的類(lèi)的生成onTime函數(shù):
在ClassWizard里,選擇需要計(jì)時(shí)器的類(lèi),添加WM_TIME消息映射,就自動(dòng)生成onTime函數(shù)了。然后在函數(shù)里添加代碼,讓代碼實(shí)現(xiàn)功能。
每隔一段時(shí)間就會(huì)自動(dòng)執(zhí)行一次。

例:

SetTimer(1,1000,NULL);

1:計(jì)時(shí)器的名稱(chēng);

1000:時(shí)間間隔,單位是毫秒;

NULL:使用onTime函數(shù)。

當(dāng)不需要計(jì)時(shí)器的時(shí)候調(diào)用KillTimer(nIDEvent);

例如:KillTimer(1);

2) 調(diào)用回調(diào)函數(shù)

此方法首先寫(xiě)一個(gè)如下格式的回調(diào)函數(shù)

void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);
然后再用SetTimer(1,100,TimerProc)函數(shù)來(lái)建一個(gè)定時(shí)器,第三個(gè)參數(shù)就是回調(diào)函數(shù)地址。

二. 或許你會(huì)問(wèn),如果我要加入兩個(gè)或者兩個(gè)以上的 timer怎么辦?

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

SetTimer(2,1000,NULL);

SetTimer(3,500,NULL);

嗯,WINDOWS會(huì)協(xié)調(diào)他們的。當(dāng)然onTimer函數(shù)體也要發(fā)生變化,要在函數(shù)體內(nèi)添加每一個(gè)timer的處理代碼:

onTimer(nIDEvent)

{
switch(nIDEvent)

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


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

SetTimer表示的是定義個(gè)定時(shí)器。根據(jù)定義指定的窗口,在指定的窗口(CWnd)中實(shí)現(xiàn)OnTimer事件,這樣,就可以相應(yīng)事件了。

SetTimer有兩個(gè)函數(shù)。一個(gè)是全局的函數(shù)::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事件的窗口類(lèi)。說(shuō)道窗口類(lèi)(CWnd),我們有必要來(lái)看一下CWnd的繼承情況:CWnd有以下子類(lèi):CFrameWnd,CDialog,CView,CControlBar等類(lèi)。這也意味這些類(lèi)中都可以定義SetTimer事件。

同時(shí),SetTimer()在CWnd中也有定義,即SetTimer()是CWnd的一個(gè)成員函數(shù)。CWnd的子類(lèi)可以調(diào)用該函數(shù),來(lái)設(shè)置觸發(fā)器。

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

參數(shù)含義:

nIDEvent:是指設(shè)置這個(gè)定時(shí)器的iD,即身份標(biāo)志,這樣在OnTimer()事件中,才能根據(jù)不同的定時(shí)器,來(lái)做不同的事件響應(yīng)。這個(gè)ID是一個(gè)無(wú)符號(hào)的整型。

nElapse

是指時(shí)間延遲。單位是毫秒。這意味著,每隔nElapse毫秒系統(tǒng)調(diào)用一次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。

意思是,指定應(yīng)用程序提供的TimerProc回調(diào)函數(shù)的地址,來(lái)處里這個(gè)Timer事件。如果是NULL,處理這個(gè)Timer事件的定義這個(gè)Timer的CWnd對(duì)象。他將WM_TIMER消息傳遞給這個(gè)對(duì)象,通過(guò)實(shí)現(xiàn)這個(gè)對(duì)象的OnTimer()事件來(lái)處理這個(gè)Timer事件。

所以,一般情況下,我們將這個(gè)值設(shè)為NULL,有設(shè)置該定時(shí)器的對(duì)象中的OnTimer()函數(shù)來(lái)處理這個(gè)事件。

同樣的,我們?cè)倏纯碖illTimer()和OnTimer()的定義:

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


//全局函數(shù)

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

//CWnd函數(shù)

BOOL KillTimer( int nIDEvent );

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

再看看OnTimer()

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

ontimer()是響應(yīng)CWnd對(duì)象產(chǎn)生的WM_Timer消息。nIDEvent表示要響應(yīng)TIMER事件的ID。

二、Timer事件的使用:

由以上的分析,我們應(yīng)該很清楚,如何來(lái)使用Timer事件。假定我們?cè)谝晥D上畫(huà)一個(gè)漸變的動(dòng)畫(huà)。我們首先在菜單欄上添加一個(gè)菜單項(xiàng),給這個(gè)菜單添加命令響應(yīng):

pView->SetTimer(1,1000,NULL);//pView是視圖類(lèi)的指針,這里是在視圖類(lèi)當(dāng)中設(shè)置一個(gè)定時(shí)器。

添加完畢,再給視圖類(lèi)添加一個(gè)WM_Timer事件的相應(yīng)。在OnTimer()函數(shù)中編寫(xiě)漢書(shū),進(jìn)行相應(yīng)。

如此,就能做出動(dòng)畫(huà)。
本貼來(lái)自ZDNetChina中文社區(qū) http://bbs.zdnet.com.cn ,本貼地址:http://bbs.zdnet.com.cn/viewthread.php?tid=313294

 

 

 

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


只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


導(dǎo)航

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

統(tǒng)計(jì)

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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国产一区| 久久电影一区| 99国内精品| 亚洲国产另类久久久精品极度| 亚洲在线第一页| 99亚洲视频| 一本色道88久久加勒比精品| 亚洲人www| 一本色道久久综合精品竹菊 | 在线性视频日韩欧美| 黄色成人片子| 有坂深雪在线一区| 亚洲电影免费观看高清完整版在线 | 亚洲欧美偷拍卡通变态| 夜夜精品视频| 亚洲欧美日韩国产成人精品影院| 一区二区三区欧美在线| 亚洲综合久久久久| 欧美一区二区日韩一区二区| 久久se精品一区二区| 日韩一区二区免费高清| aa级大片欧美三级| 性视频1819p久久| 老巨人导航500精品| 欧美国产国产综合| 在线一区二区日韩| 欧美一区激情| 欧美激情第1页| 国产精品视频1区| 国产主播精品在线| 亚洲经典视频在线观看| 亚洲男同1069视频| 欧美成人一区二区在线| 亚洲调教视频在线观看| 麻豆国产精品va在线观看不卡| 欧美日韩在线播放三区| 在线日韩电影| 亚洲日本久久| 亚洲国产高潮在线观看| 99精品视频一区| 欧美在线三区| 欧美日韩亚洲一区二区三区在线| 国产日韩欧美自拍| 亚洲一级免费视频| 亚洲国产日韩精品| 久久精品理论片| 国产精品久久久久91| 亚洲黄色一区| 久久久亚洲高清| 亚洲一级二级| 欧美日韩中文字幕| 亚洲国产专区校园欧美| 久久精品一区二区三区中文字幕| 亚洲日本va午夜在线电影| 久热精品视频在线观看一区| 国产综合欧美在线看| 亚洲一区999| 亚洲国产精品精华液2区45| 久久久青草青青国产亚洲免观| 午夜亚洲一区| 一区二区三区欧美在线| 久久频这里精品99香蕉| 国产精品免费视频xxxx| 国产三级精品三级| 久久狠狠亚洲综合| 夜夜精品视频| 欧美精品久久久久久| 国产一区二区三区久久久久久久久| 亚洲精品在线看| 蜜臀av性久久久久蜜臀aⅴ| 亚洲一区二区精品在线| 欧美阿v一级看视频| 一区二区三区在线观看欧美| 在线成人欧美| 亚洲在线中文字幕| 亚洲与欧洲av电影| 国产精品美女久久久久久免费| 亚洲人成在线观看网站高清| 久久欧美中文字幕| 午夜伦理片一区| 国产精品欧美日韩久久| 一区二区三区四区五区在线| 欧美大片va欧美在线播放| 久久精品一区二区国产| 国产亚洲福利| 欧美一乱一性一交一视频| 麻豆精品精华液| 午夜精彩国产免费不卡不顿大片| 欧美日韩在线精品| 亚洲少妇最新在线视频| 亚洲日韩视频| 欧美日产在线观看| 一区二区三区国产在线| 亚洲激情一区二区三区| 欧美激情麻豆| 国产精品99久久久久久久久久久久| 精品福利免费观看| 欧美日韩精品一区二区天天拍小说| 在线一区日本视频| 在线一区二区三区四区| 国产精品私房写真福利视频| 欧美中日韩免费视频| 久久gogo国模啪啪人体图| 国产亚洲欧美一区二区| 久久久欧美精品| 久热re这里精品视频在线6| 亚洲国产日韩欧美在线99 | 欧美1区免费| 免费黄网站欧美| 一本色道久久综合狠狠躁篇的优点| 99视频一区二区| 国产偷国产偷亚洲高清97cao| 久久亚洲精品一区二区| 欧美国产免费| 欧美专区在线观看一区| 久久综合伊人77777尤物| 在线免费观看欧美| 亚洲肉体裸体xxxx137| 国产一区二区三区在线观看网站 | 亚洲午夜一区二区| 国内精品久久久久久久影视麻豆 | 亚洲午夜极品| 久久精品一区二区| 在线综合亚洲欧美在线视频| 午夜精品久久久久久久久久久久| 在线日韩欧美| 欧美国产日韩视频| 国产精品第一区| 欧美国产极速在线| 国产日韩精品一区二区三区在线| 蜜桃av一区二区| 欧美午夜精品久久久久久孕妇| 久久国产日本精品| 欧美美女日韩| 你懂的视频欧美| 国产女人aaa级久久久级| 亚洲国产一区二区视频 | 欧美韩日一区| 美女啪啪无遮挡免费久久网站| 国产精品久久久久9999| 亚洲国产精品久久精品怡红院| 国产一区二区三区视频在线观看 | 亚洲欧美日韩一区二区| 在线天堂一区av电影| 男女精品网站| 亚洲欧美一区二区激情| 欧美国产一区二区三区激情无套| 欧美一级久久久久久久大片| 欧美日韩不卡一区| 国产欧美精品一区aⅴ影院| 欧美国产精品中文字幕| 欧美成人免费网| 久久青草欧美一区二区三区| 欧美性大战久久久久久久蜜臀| 亚洲激情影院| 99成人在线| 欧美激情网友自拍| 欧美粗暴jizz性欧美20| 欧美日韩少妇| 欧美第十八页| 91久久精品国产91性色tv| 欧美在线观看视频在线| 欧美亚洲三区| 国产拍揄自揄精品视频麻豆| 亚洲伊人一本大道中文字幕| 一本大道久久精品懂色aⅴ| 农村妇女精品| 亚洲国产1区| 亚洲欧美日韩成人| 国产精品无码永久免费888| 亚洲深夜福利视频| 午夜精品久久久久99热蜜桃导演| 欧美性猛交xxxx乱大交蜜桃| 亚洲色诱最新| 久久久精品国产一区二区三区| 欧美日本不卡视频| 亚洲精品欧美在线| 中文在线资源观看网站视频免费不卡| 欧美福利在线观看| 亚洲美女毛片| 欧美一区二区三区在线| 国精产品99永久一区一区| 一本色道久久| 免费成人av在线看| 99精品欧美一区二区三区| 欧美午夜精品一区| 欧美一区成人| 亚洲国产精品免费| 亚洲欧美日韩视频一区| 国产一区二区三区久久久| 久久久久久久久久久久久久一区| 日韩亚洲欧美在线观看| 欧美午夜a级限制福利片| 亚洲欧美三级伦理| 欧美va日韩va| 夜夜嗨一区二区| 黄色精品一区| 欧美性开放视频| 欧美伦理视频网站|