久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

MFC窗口類函數(shù)的概括

 9loong 2010-12-26
 

SDK寫程序時,main()的地位被WinMain()取代了.

類CWinApp表示應(yīng)用程序本身.

類關(guān)系結(jié)構(gòu)圖

CObject
   |--- CCmdTarget
   |--- CWinThread
   |--- CWinApp
  
          CObject
                |--- CCmdTarget
              |--- CWnd
                |--- CFrameWnd

一,、virtual BOOL CWinApp::initlnstance();
聲明Initstance(),就是自己寫一段InitInstance()來重載CWinApp提供的那段程序.

二,、主窗口通常是CFrameWnd或者其派生類,先設(shè)置從CFrameWnd派生的新類MyFrameWindow.
生成主窗口對象后,必須將它賦給CWinApp的成員變量:m_pMainWnd再調(diào)用CFrameWnd::Create()創(chuàng)建主窗口.
在程序中創(chuàng)建一個MFC對象并不等于要求Windows系統(tǒng)創(chuàng)建一個接口對象,必須等到調(diào)用Create()后,
MFC才要求Windows系統(tǒng)創(chuàng)建相對的接口對象.
所以Create()的第一個參數(shù)是NULL,第二個參數(shù)是將該窗口的標題文字設(shè)置為"Hello".

三、調(diào)用CWnd::ShowWindow()要求Windows將這個顯示在屏幕上.

四、類MyFrameWindow重載了CFranmeWnd的成員函數(shù)OnPaint(),

當被遮蓋的部分再次顯示在屏幕上時,系統(tǒng)會給該窗口發(fā)出WM_PAINT消息,
告訴此窗口:工作區(qū)哪些部分需要重繪.
處理消息:寫一個消息映射表將消息交付給指定函數(shù)處理.
創(chuàng)建映射表的類中加上這條語句
DECLARE_MESSAGE_MAP()

在程序的其它部分聲明一個符合下列格式的表格:
BEGIN_MESSAGE_MAP(類名稱,父類的名稱)
......
END_MESSAGE_MAP()

要處理WM_PAINT在BEGIN與END之間加ON_WM_PAINT()
還要替換MyFrameWindow加上OnPaint()成員函數(shù)才行.

五、設(shè)置窗口的圖標.

設(shè)置圖標的程序代碼集中于 ?App::InitInstance()中

★ HICON CWinApp::Loadicon(LPCTSTR lpszResourceName)const;
★ HICON CWinApp::Loadicon(UINT nIDResource)const;
圖標的名稱(字符串)后者以id為參數(shù),要把這個圖標賦給哪個窗口,
調(diào)用CWnd::SetIcon() 就可以了 。

★ HICON CWnd::Setlcon(HICON hIcon,BOOL bBigIcon)
第一個參數(shù)是要賦給該窗口的圖標的句柄,第二參數(shù)圖標是否為大圖標16*16 FALSE,32*32設(shè)為TRUE.

載入光標資源
★ HCURSOR CWinApp::LoadCursor(LPCTSTR lpszResourceName)const;
★ HCURSOQR CWinApp::LoadCursor(UINT nIDResource)const;

載入標準光標資源
★ HCURSOR CWinApp::LoadStandardCursor(LPCTSTR lpszCursorName)const;

載入標準圖標資源
★ HICON CWinApp::LoadStandardIcon(LPCTSTR lpszIconName)const;

六,、設(shè)置窗口主菜單:

在創(chuàng)建窗口對象之前,MFC核心會先跳到虛函數(shù)
CWnd::PreCreateWindow()執(zhí)行,
參數(shù)寫在結(jié)構(gòu)CREATESTRUCT因此只要在CWnd::PreCreateWindows()中修改CREATESTRUCT的參數(shù),
LoadMenu()以便載入菜單資源.
HMENU LoadMenu(HINSTANCE hInstance,LPCTSTR lpMenuName);
第一個參數(shù)標示應(yīng)用程序?qū)嵗浔?通常用NULL表示當前這個應(yīng)用程序,
第二個圖標資源的名字,不過是數(shù)字.常量表示資源,
因此要用MAKEINTRESOURCE()將常量轉(zhuǎn)換成它可接收的格式.
LPTSTR MAKEINTRESOURCE(WORD winteger);

七,、關(guān)閉窗口及結(jié)束程序的執(zhí)行

成員函數(shù)MyFrameWindow::OnFileExit()必須負責結(jié)束應(yīng)用程序的執(zhí)行,
只要向它發(fā)送一個消息WM_CLOSE就可以了.
除了Windows操作系統(tǒng)可以發(fā)出消息外,還可以給窗口發(fā)送消息.
PostMessage()發(fā)送一個WM_CLOSE消息給窗口對象自己,它收到命令后,就會關(guān)閉.

(#)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多