




全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MFC 定時(shí)器編程實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?1) 掌握Visual Studio 開(kāi)發(fā)環(huán)境調(diào)試程序的方法;(2) 掌握MFC 消息映射的操作步驟;(3) 掌握MFC 編程模式中定時(shí)器的使用方法.二、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)窗口,在窗口中間位置繪制一個(gè)紅色粗實(shí)線的矩形,并用交替使用三種不同樣式的畫(huà)刷填充矩形的內(nèi)部,每次刷新的時(shí)間間隔為1.0 秒。單擊鼠標(biāo)左鍵啟動(dòng)定時(shí)器,單擊鼠標(biāo)右鍵停止定時(shí)器。三、程序清單1.頭文件#include afxwin.hclass CDemoWnd:public CFrameWndpublic:CDemoWnd();CDemoWnd();public:LRESULT OnPaint(WPARAM wParam,LPARAM lParam);LRESULT OnTimer(WPARAM wParam,LPARAM lParam);LRESULT OnLButtonDown(WPARAM wParam,LPARAM lParam);LRESULT OnRButtonDown(WPARAM wParam,LPARAM lParam);DECLARE_MESSAGE_MAP()public:int m_nState; ;class CDemoApp:public CWinApppublic:BOOL InitInstance();CDemoApp theApp;2.源文件#include Demo.hCDemoWnd:CDemoWnd() / 構(gòu)造函數(shù)m_nState = 0;CDemoWnd:CDemoWnd() / 析構(gòu)函數(shù)BEGIN_MESSAGE_MAP(CDemoWnd,CFrameWnd)ON_MESSAGE(WM_PAINT,OnPaint)ON_MESSAGE(WM_TIMER,OnTimer)ON_MESSAGE(WM_LBUTTONDOWN,OnLButtonDown)ON_MESSAGE(WM_RBUTTONDOWN,OnRButtonDown)END_MESSAGE_MAP()LRESULT CDemoWnd:OnLButtonDown(WPARAM wParam,LPARAM lParam)SetTimer(1,1000,NULL);return 0;LRESULT CDemoWnd:OnRButtonDown(WPARAM wParam,LPARAM lParam)KillTimer(1);return 0;LRESULT CDemoWnd:OnPaint(WPARAM wParam,LPARAM lParam)CPaintDC dc(this);CPen Pen, *poldpen;CBrush Brush, *pOldBrush;switch (m_nState)case 0:Brush.CreateSolidBrush(RGB(0, 150, 255); /紫色m_nState = 1;break;case 1:Brush.CreateSolidBrush(RGB(0, 255, 100); /藍(lán)色m_nState = 2;break;case 2:Brush.CreateSolidBrush(RGB(200, 0, 200); /青色m_nState = 0;break;pOldBrush = dc.SelectObject(&Brush);Pen.CreatePen(PS_SOLID, 3, RGB(255, 0, 0);poldpen = dc.SelectObject(&Pen);dc.Rectangle(300, 100, 800, 500);dc.SelectObject(poldpen);dc.SelectObject(pOldBrush);return 0;LRESULT CDemoWnd:OnTimer(WPARAM wParam,LPARAM lParam)CRect rt(40, 40, 1000, 1000);InvalidateRect(&rt);return 0;BOOL CDemoApp:InitInstance()CDemoWnd *pMainWnd = new CDemoWnd();pMainWnd-Create(NULL,Demo Mini-MFC);pMainWnd-ShowWindow(m_nCmdShow);pMainWnd-UpdateWindow();m_pMainWnd = pMainWnd;return TRUE;四、運(yùn)行結(jié)果五、定時(shí)器消息編程的步驟,以及程序設(shè)計(jì)過(guò)程中需要注意的問(wèn)題;1、 啟動(dòng)定時(shí)器使用SetTimer 函數(shù)創(chuàng)建一個(gè)定時(shí)器,并制定超時(shí)時(shí)間,然后啟動(dòng)定時(shí)器。該函數(shù)說(shuō)明如下:UINT SetTimer(UINT nIDEvent, / 定時(shí)器標(biāo)識(shí)符UINT nElapse, / 定時(shí)時(shí)間,單位是毫秒void (CALLBACK EXPORT* lpfnTimer) / 定時(shí)器回調(diào)函數(shù)地址(HWND, UINT, UINT, DWORD);示例代碼:SetTimer(1,200,NULL);2、 銷(xiāo)毀定時(shí)器定時(shí)器在不使用時(shí)要使用KillTimer 函數(shù)進(jìn)行銷(xiāo)毀,該函數(shù)說(shuō)明如下:BOOL KillTimer(int nIDEvent / 定時(shí)器標(biāo)識(shí)符);示例代碼:KillTimer(1);應(yīng)注意:WM_TIMER消息的應(yīng)用消息號(hào):WM_TIMERwTimerID = wParam; / 定時(shí)器標(biāo)識(shí)符tmprc = (TIMERPROC *) lParam; / 定時(shí)器回調(diào)函數(shù)的地址其中,定時(shí)器回調(diào)函數(shù)在使用SetTimer 啟動(dòng)定時(shí)器時(shí)指定,如果沒(méi)有指定定時(shí)器回調(diào)函數(shù)則可直接通過(guò)消息映射處理WM_TIMER 消息。六、實(shí)驗(yàn)總結(jié)通過(guò)本次實(shí)驗(yàn),我進(jìn)一步的熟悉了Visual Studio 軟件的開(kāi)發(fā)環(huán)境,對(duì)這個(gè)軟件有了更深的了解。熟悉了 Visual Studio開(kāi)發(fā)環(huán)境, 學(xué)習(xí)和掌握了 MFC消息映射的操作步驟,并且掌握MFC 編程模式中定時(shí)器的使用方法.,進(jìn)一步掌握了在Visual Studio中調(diào)試程序的方法。在實(shí)驗(yàn)中我也復(fù)習(xí)了以前的實(shí)驗(yàn)中學(xué)到的在Visual Studio 開(kāi)發(fā)環(huán)境調(diào)試程序的方法,并且可以更加熟練的應(yīng)用其來(lái)修改程序。我也理解了定時(shí)器消息編程的步驟。在實(shí)驗(yàn)過(guò)程中,我也遇到了一些困難,比如不夠熟悉Visual Studio軟件的應(yīng)用,忘記在后面銷(xiāo)毀定時(shí)器,忘記改變項(xiàng)目中Demo的屬性。經(jīng)過(guò)老師和同學(xué)的指導(dǎo),我學(xué)會(huì)了解決這些問(wèn)題的辦法。在實(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 深圳市二手房裝修工程施工合同
- 跨國(guó)(非獨(dú)占)品牌授權(quán)合作合同專(zhuān)業(yè)版
- 勞動(dòng)合同判例解析:合同糾紛與法律適用
- 實(shí)習(xí)生實(shí)習(xí)與就業(yè)合同書(shū)
- 反擔(dān)保責(zé)任合同模板
- 購(gòu)銷(xiāo)合同的反擔(dān)保書(shū)
- 全球商標(biāo)使用權(quán)轉(zhuǎn)讓合同
- 實(shí)習(xí)人員合同范本
- 終止建筑工程合同協(xié)議書(shū)
- 企業(yè)學(xué)徒工用工合同范本
- 開(kāi)學(xué)安全第一課主題班會(huì)課件
- 一年級(jí)珍惜糧食主題班會(huì)學(xué)習(xí)教案
- 新版《醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范》(2024)培訓(xùn)試題及答案
- 2025年人教版數(shù)學(xué)五年級(jí)下冊(cè)教學(xué)計(jì)劃(含進(jìn)度表)
- 海岸動(dòng)力學(xué)英文課件Coastal Hydrodynamics-復(fù)習(xí)
- 碳足跡研究-洞察分析
- 硬質(zhì)巖層組合切割開(kāi)挖技術(shù)
- 2024解析:第二章聲現(xiàn)象-講核心(解析版)
- 2024年考研管理類(lèi)綜合能力(199)真題及解析完整版
- 2025年初級(jí)社會(huì)工作者綜合能力全國(guó)考試題庫(kù)(含答案)
- 2024解析:第十章 浮力綜合應(yīng)用-講核心(解析版)
評(píng)論
0/150
提交評(píng)論