日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

MFC练习

發(fā)布時(shí)間:2025/3/15 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC练习 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
::ZeroMemory(m_nGameGrid,9*sizeof(int)); //相應(yīng)的函數(shù)API接口,進(jìn)行ASPI函數(shù)的定義,::證明是全局函數(shù) //游戲初始化就相當(dāng)于將相應(yīng)的內(nèi)存模塊清空,并進(jìn)行相應(yīng)初始化 Invalidate(); //作用是令整個(gè)窗口無效

在C++中經(jīng)常簡單在函數(shù)的內(nèi)部調(diào)用相應(yīng)的函數(shù)的時(shí)候帶上::的符號,帶有這樣符號的函數(shù)說明是全局函數(shù)。

建立簡單的MFC程序
編寫代碼:
HELLOMFC.c文件

#ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0501 #endif #ifndef _WIN32_IE #define _WIN32_IE 0x0500 #endif//這樣做的目的是為了可兼容vc++6.0的程序,由于程序參考的是VC++6.0的但是編譯器是VS2008所以部分地方設(shè)置的有些不同 #include <afxwin.h> #include "hellomfc.h"CMyApp myApp; //類的初始化,聲明一個(gè)CMyApp的類對象并進(jìn)行初始化BOOL CMyApp::InitInstance() {m_pMainWnd = new CMyFrame;m_pMainWnd ->ShowWindow(m_nCmdShow);m_pMainWnd ->UpdateWindow();return TRUE; } CMyFrame::CMyFrame() { m_bMouseOver =FALSE;Create(NULL, TEXT("這是我的MFC測試窗口!")); //創(chuàng)建一個(gè)窗口 }BEGIN_MESSAGE_MAP(CMyFrame, CFrameWnd)ON_WM_PAINT()// ON_WM_NCHITTEST() //為afx_msg UINT OnNcHitest();加上鼠標(biāo)動作處理消息處理函數(shù)ON_WM_MOUSEMOVE()ON_MESSAGE(WM_MOUSELEAVE,OnMouseLeave) //沒有特定的消息映射宏的時(shí)候要使用消息映射關(guān)聯(lián)在一起ON_MESSAGE(WM_MOUSEHOVER,OnMouseHover)END_MESSAGE_MAP()//UINT CMyFrame::OnNcHitest(CPoint point) //參數(shù)point 是消息發(fā)生的時(shí)候鼠標(biāo)點(diǎn)擊位置的坐標(biāo) //{ // //UINT nHitTest = CFrameWnd::OnNcHitTest(point);// if (nHitTest == HTCLIENT)// nHitTest = HTCAPTION;// return nHitTest; //}void CMyFrame::OnPaint() {CPaintDC dc(this);CRect rect;GetClientRect(&rect);dc.DrawText(TEXT("Hello MFC!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); }void CMyFrame::OnMouseMove(UINT nflags,CPoint point) {if(!m_bMouseOver){SetWindowText("MOUSE ENTER!");m_bMouseOver = TRUE;TRACKMOUSEEVENT tme;tme.cbSize = sizeof(tme);tme.dwFlags = TME_HOVER | TME_LEAVE;tme.hwndTrack = m_hWnd; //窗口的句柄 tme.dwHoverTime = HOVER_DEFAULT; // 在窗口上放置多久才會產(chǎn)生消息::TrackMouseEvent(&tme);}}LRESULT CMyFrame::OnMouseLeave(WPARAM wParam,LPARAM lParam) {SetWindowText("MOUSE LEAVE");m_bMouseOver = FALSE;return 0;} LRESULT CMyFrame ::OnMouseHover(WPARAM wParam,LPARAM lParam) {CString strmsg;strmsg.Format("Mouse hover(x= %d,y=%d)",LOWORD(lParam),HIWORD(lParam));SetWindowText(strmsg);TRACKMOUSEEVENT tme;tme.cbSize = sizeof(tme);tme.dwFlags = TME_HOVER | TME_LEAVE;tme.hwndTrack = m_hWnd; //在CFrameWnd中已經(jīng)定義的字段tme.dwHoverTime = HOVER_DEFAULT;::TrackMouseEvent(&tme);return 0; }

HELLOMFC.h文件

class CMyApp : public CWinApp {virtual BOOL InitInstance(); }; class CMyFrame : public CFrameWnd { public:CMyFrame(); //類的構(gòu)造函數(shù),析構(gòu)函數(shù)通常不寫出來protected:BOOL m_bMouseOver;protected://afx_msg不是函數(shù)的類型只是說明函數(shù)是處理消息的函數(shù)afx_msg void OnPaint();// afx_msg UINT OnNcHitest(CPoint point); //聲明一個(gè)函數(shù)原型afx_msg void OnMouseMove(UINT nflags,CPoint point);afx_msg LRESULT OnMouseHover(WPARAM wParam,LPARAM lParam);afx_msg LRESULT OnMouseLeave(WPARAM wParam,LPARAM lParam);DECLARE_MESSAGE_MAP() };

總結(jié)

以上是生活随笔為你收集整理的MFC练习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。