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

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類中,調(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í)器的類的生成onTime函數(shù):
在ClassWizard里,選擇需要計(jì)時(shí)器的類,添加WM_TIME消息映射,就自動(dòng)生成onTime函數(shù)了。然后在函數(shù)里添加代碼,讓代碼實(shí)現(xiàn)功能。
每隔一段時(shí)間就會(huì)自動(dòng)執(zhí)行一次。

例:

SetTimer(1,1000,NULL);

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

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

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

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

例如:KillTimer(1);

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

此方法首先寫一個(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事件的窗口類。說(shuō)道窗口類(CWnd),我們有必要來(lái)看一下CWnd的繼承情況:CWnd有以下子類:CFrameWnd,CDialog,CView,CControlBar等類。這也意味這些類中都可以定義SetTimer事件。

同時(shí),SetTimer()在CWnd中也有定義,即SetTimer()是CWnd的一個(gè)成員函數(shù)。CWnd的子類可以調(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上畫一個(gè)漸變的動(dòng)畫。我們首先在菜單欄上添加一個(gè)菜單項(xiàng),給這個(gè)菜單添加命令響應(yīng):

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

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

如此,就能做出動(dòng)畫。
本貼來(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 閱讀(4092) 評(píng)論(0)  編輯 收藏 引用


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


導(dǎo)航

<2010年3月>
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

統(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>
            久久国产精品黑丝| 国产精品盗摄久久久| 男女av一区三区二区色多| 国产精品高清一区二区三区| 最新国产の精品合集bt伙计| 久久成人精品| 亚洲午夜成aⅴ人片| 欧美日韩免费高清一区色橹橹| 亚洲第一搞黄网站| 美日韩精品视频免费看| 久久久久se| 伊人婷婷欧美激情| 麻豆久久精品| 美女精品在线观看| 久久国产精品久久国产精品| 国产一区自拍视频| 久久在线免费观看| 久久亚洲春色中文字幕久久久| 激情欧美一区二区三区在线观看 | 久久久精品国产免大香伊| 亚洲男女自偷自拍| 国产婷婷色一区二区三区| 久久爱www久久做| 久久精品成人一区二区三区蜜臀| 国产三区精品| 美女任你摸久久| 欧美**字幕| 亚洲一区二区免费视频| 亚洲午夜精品福利| 国产一区二区三区久久悠悠色av | 欧美va天堂| 一区二区三区免费看| 夜夜躁日日躁狠狠久久88av| 欧美日韩视频在线观看一区二区三区| 这里只有精品电影| 午夜在线一区二区| 亚洲激情第一区| 在线一区二区日韩| 国产一区二区电影在线观看| 欧美国产一区视频在线观看| 欧美日韩www| 久久都是精品| 欧美激情视频一区二区三区免费| 亚洲永久免费视频| 久久精品最新地址| 亚洲色诱最新| 久久久噜噜噜久久中文字免| 一区二区91| 久久国产欧美精品| 正在播放欧美一区| 久久久97精品| 亚洲午夜伦理| 久久最新视频| 欧美影视一区| 欧美日韩精品免费观看视频完整| 久久精品国产久精国产一老狼 | 中文日韩在线视频| 久久另类ts人妖一区二区| 亚洲小说区图片区| 美女久久一区| 久久人人爽国产| 欧美日韩国产一级| 欧美成年视频| 国产在线观看一区| 亚洲调教视频在线观看| 亚洲毛片av| 久久综合伊人77777麻豆| 欧美一区亚洲二区| 国产精品va| 亚洲性人人天天夜夜摸| 久久蜜桃资源一区二区老牛| 午夜欧美电影在线观看| 欧美国产日本在线| 欧美a级一区二区| 国产一区激情| 亚洲免费视频观看| 亚洲欧美在线高清| 国产精品jvid在线观看蜜臀| 亚洲精品日韩欧美| 亚洲精品欧美激情| 免费高清在线视频一区·| 久久综合99re88久久爱| 国产乱子伦一区二区三区国色天香| 亚洲精品网站在线播放gif| 亚洲日本欧美| 欧美大成色www永久网站婷| 久久在线视频在线| 国内成人自拍视频| 久久久久久综合| 免费观看成人网| 在线精品视频免费观看| 久久在线视频| 亚洲二区免费| 亚洲国产99| 蜜臀久久99精品久久久画质超高清 | 欧美中文字幕在线| 久久婷婷激情| 亚洲国产成人91精品| 免费在线视频一区| 亚洲精品裸体| 亚洲欧美成人一区二区在线电影| 国产精品ⅴa在线观看h| 亚洲线精品一区二区三区八戒| 亚洲永久网站| 国产一区999| 蜜臀久久99精品久久久久久9 | 玖玖在线精品| 亚洲精品美女91| 性欧美精品高清| 国产一区二区久久| 老色鬼精品视频在线观看播放| 亚洲第一页中文字幕| 日韩视频免费大全中文字幕| 欧美日韩三级一区二区| 亚洲摸下面视频| 免费成人黄色| 一区二区久久久久| 国产欧美日韩激情| 麻豆九一精品爱看视频在线观看免费| 亚洲国产一区二区精品专区| 亚洲自拍电影| 在线成人www免费观看视频| 欧美激情精品久久久六区热门| 一本大道久久a久久综合婷婷| 久久国产日本精品| 亚洲精品美女久久7777777| 国产精品久久久一区麻豆最新章节 | 亚洲国产另类精品专区| 亚洲性感美女99在线| 一区二区三区在线观看国产| 欧美精品在线免费| 欧美性猛交视频| 国产精品99久久久久久白浆小说| 欧美日本一区| 亚洲欧美日韩一区在线| 欧美激情视频一区二区三区在线播放| 99国产精品视频免费观看一公开| 国产区欧美区日韩区| 欧美国产国产综合| 性娇小13――14欧美| 亚洲欧洲免费视频| 久久er99精品| 亚洲午夜激情网站| 亚洲激情不卡| 黄色亚洲大片免费在线观看| 欧美日韩一区二区三区免费| 欧美资源在线| 亚洲系列中文字幕| 日韩视频三区| 亚洲国产精品电影在线观看| 久久久噜噜噜久久狠狠50岁| 亚洲色图自拍| 日韩视频亚洲视频| 在线观看日韩av| 国产一区二区观看| 国产精品腿扒开做爽爽爽挤奶网站| 欧美激情视频一区二区三区不卡| 久久精品日产第一区二区| 亚洲综合精品一区二区| 一本久久a久久免费精品不卡| 亚洲电影观看| 亚洲高清影视| 欧美激情精品久久久久久变态| 久久视频在线免费观看| 欧美专区在线| 久久国产婷婷国产香蕉| 欧美一区二视频| 亚洲欧美激情四射在线日| 亚洲网友自拍| 亚洲男同1069视频| 午夜精品免费视频| 亚洲欧美三级在线| 亚洲欧美日韩综合一区| 亚洲欧美日韩一区二区| 亚洲欧美春色| 欧美一二区视频| 久久高清一区| 久久亚洲综合网| 免费中文字幕日韩欧美| 欧美成年人视频网站| 亚洲国产精品一区二区第一页| 欧美a一区二区| 亚洲国产精品热久久| 亚洲乱码国产乱码精品精天堂| 99国内精品久久| 亚洲影视中文字幕| 欧美在线免费一级片| 久久最新视频| 欧美激情精品久久久| 欧美日韩在线高清| 国产女主播一区二区三区| 国产日韩在线看| 在线播放日韩欧美| 亚洲精品国产日韩| 亚洲专区一区| 久久亚洲影院| 亚洲精品美女在线| 亚洲欧美日韩系列| 久久在线91| 国产精品人成在线观看免费 |