freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第4章mfc基本應(yīng)用程序的建立(參考版)

2024-10-21 13:15本頁面
  

【正文】 。 (4)從實(shí)際的文件夾中刪除對(duì)應(yīng)的 .h和 .cpp文件與 .clw文件。 (2)將項(xiàng)目工作區(qū)窗口切換到 FileView頁面,展開 Source Files和 Header Files結(jié)點(diǎn),分別選定要?jiǎng)h除類的對(duì)應(yīng) .h和 .cpp文件,按下 Delete鍵,刪除這兩個(gè)文件。 (3)單擊 [OK]按鈕,一個(gè)新類就會(huì)自動(dòng)添加到項(xiàng)目中。 圖 New Class對(duì)話框 ClassWizard (2)對(duì)話框中, Name框是用來輸入用戶定義的類名,注意要以 “ C”字母打頭,以保持與 MFC標(biāo)識(shí)符命名規(guī)則一致; File Name是該類的源代碼文件名,單擊 [Change]按鈕可改變?cè)次募Q及其在磁盤中的位置; Base class框用來指定該類的基類; Dialog ID框是當(dāng)選擇 CDialog作為基類時(shí)指定對(duì)話框的資源 ID號(hào)。 ClassWizard 用 MFC ClassWizard給項(xiàng)目添加一個(gè)類通常是按下列步驟進(jìn)行的: (1)按快捷鍵 Ctrl+W啟動(dòng) MFC ClassWizard對(duì)話框。該消息處理函數(shù)的原型是; afx_msg void OnPaint()。(2)WM_CLOSE或 WM_DESTROY消息 從系統(tǒng)菜單中關(guān)閉窗口或者父窗口被關(guān)閉時(shí),都會(huì)發(fā)送 WM_CLOSE消息;而 WM_DESTROY消息是在窗口從屏幕消失后發(fā)送的,因此它緊隨WM_CLOSE之后。 (1)WM_CREATE消息 窗口對(duì)象創(chuàng)建后,向視圖發(fā)送的第一個(gè)消息;如果用戶有什么工作需要在初始化時(shí)處理,就可在該消息處理函數(shù)中加入所需代碼。 對(duì)于 WM_TIMER消息, ClassWizard會(huì)將其映射成具有下列消息處理函數(shù): afx_msg void OnTimer( UINT nIDEvent )。應(yīng)用程序不再使用計(jì)時(shí)器時(shí),調(diào)用 CWnd:: KillTimer函數(shù)來停止 WM_TIMER消息的傳送,原型: BOOL KillTimer( int nIDEvent )。一般情況下該參數(shù)為 NULL,此時(shí) WM_TIMER消息被放入到應(yīng)用程序消息隊(duì)列中供 CWnd對(duì)象處理。 應(yīng)用程序是通過 CWnd的 SetTimer函數(shù)來設(shè)置并啟動(dòng)計(jì)時(shí)器的,函數(shù)原型: UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) )。 ClassWizard ? 映射計(jì)時(shí)器消息 有一種常用的輸入設(shè)備就是計(jì)時(shí)器,它周期性地按一定的時(shí)間間隔向應(yīng)用程序發(fā)送 WM_TIMER消息。 point表示鼠標(biāo)光標(biāo)在屏幕的 (x,y)坐標(biāo); nFlags表示鼠標(biāo)按鈕和鍵盤組合情況,它可以是下列值的組合 (MK前綴表示 “ 鼠標(biāo)鍵 ” ): ? MK_CONTROL —— 鍵盤上的 Ctrl鍵被按下 ? MK_LBUTTON —— 鼠標(biāo)左按鈕被按下 ? MK_MBUTTON —— 鼠標(biāo)中按鈕被按下 ? MK_RBUTTON —— 鼠標(biāo)右按鈕被按下 ? MK_SHIFT —— 鍵盤上的 Shift鍵被按下 想知道某個(gè)鍵被按下,可用對(duì)應(yīng)的標(biāo)識(shí)與 nFlags進(jìn)行邏輯 “ 與 ” (amp。在窗口的客戶區(qū)中按下或釋放一個(gè)鼠標(biāo)鍵時(shí),還會(huì)產(chǎn)生如表所示的消息。只要鼠標(biāo)移過窗口的客戶區(qū)時(shí),就會(huì)向該窗口發(fā)送 WM_MOUSEMOVE(移動(dòng)鼠標(biāo) )消息。 ? 對(duì)鼠標(biāo)進(jìn)行操作時(shí)會(huì)產(chǎn)生對(duì)應(yīng)的消息。 ? MFC中的 ClassWizard也提供相應(yīng)的字符消息處理框架,并自動(dòng)添加了當(dāng)前類的 WM_CHAR消息處理函數(shù)調(diào)用,它具有下列函數(shù)原型: afx_msg void OnChar( UINT nChar, UINT nRepCnt, UINT nFlags )。 虛擬鍵代碼指與設(shè)備無關(guān)的鍵盤編碼。 afx_msg void OnKeyUp( UINT nChar, UINT nRepCnt, UINT nFlags )。對(duì)字符鍵,會(huì)在這兩個(gè)消息之間產(chǎn)生WM_CHAR消息。 ClassWizard ? 鍵盤和鼠標(biāo)消息 ? 按下一個(gè)鍵或組合鍵時(shí),將 WM_KEYDOWN或 WM_SYSKEYDOWN放入具有輸入焦點(diǎn)的應(yīng)用程序窗口的消息隊(duì)列中。對(duì)于菜單和按鈕等命令消息來說,用 ClassWizard映射時(shí)會(huì)彈出一個(gè)對(duì)話框,用來指定消息映射函數(shù)的名稱。 } 根據(jù) ClassWizard產(chǎn)生的上述消息映射過程,可以手動(dòng)添加一些 ClassWizard不支持的消息映射函數(shù),以完成特定的功能。 查看 CEx_SDIHelloView程序代碼,可以發(fā)現(xiàn): ClassWizard為WM_LBUTTOMDOWN的消息映射作了以下三個(gè)方面內(nèi)容的安排: ? 在頭文件 OnLButtonDown: protected: //{{AFX_MSG(CEx_SDIHelloView) afx_msg void OnLButtonDown(UINT nFlags, CPoint point)。 CView::OnLButtonDown(nFlags, point)。 圖 映射 WM_LBUTTONDOWN消息 ClassWizard (5)單擊 [Edit Code],轉(zhuǎn)向文檔窗口,定位到 OnLButtonDown源代碼處。 (3)在 Object IDs列表框中選定 CEx_SDIHelloView,而在 Messages列表中選定 WM_LBUTTOMDOWN消息。 ClassWizard ? ClassWizard映射消息的一般方法 ClassWizard 例如,向 CEx_SDIHelloView中添加 WM_LBUTTOMDOWN的消息映射,則可按下列步驟進(jìn)行: (1)按 Ctrl+W快捷鍵打開 MFC ClassWizard對(duì)話框。 ? 命令消息 (Command message) 主要包括由用戶交互對(duì)象 (菜單、工具條的按鈕、快捷鍵等 )發(fā)送的WM_COMMAND通知消息。 ? 控件的通知消息 (Control notifications) 當(dāng)控件的狀態(tài)發(fā)生改變時(shí),控件就會(huì)向其父窗口發(fā)送 WM_COMMAND通知消息。 ? 窗口消息 (Windows message) 主要指由 WM_開頭的消息,一般由窗口類和視圖類對(duì)象來處理。 ? 當(dāng) ClassWizard打開后,就會(huì)彈出如圖的 MFC ClassWizard對(duì)話框。 ClassWizard ? 打開 MFC的 ClassWizard的方法: ? 選擇 “ View”?“ClassWizard”菜單或直接使用 Ctrl+W快捷鍵。 ? 診斷信息轉(zhuǎn)儲(chǔ)機(jī)制:它是通過 AssertValid、 Dump和宏 TRACE來實(shí)現(xiàn)的。 ? 數(shù)據(jù)映射機(jī)制:是實(shí)現(xiàn)對(duì)話框中變量與控件之間的數(shù)據(jù)交換和數(shù)據(jù)校驗(yàn)。 } MFC AppWizard ? 主框架窗口類 CMainFrame ? “關(guān)于 ” 對(duì)話框類 CAboutDlg MFC涉及到的機(jī)制有: ? 文檔 /視圖機(jī)制:它使用戶應(yīng)用程序類、文檔類、視圖類以及框架類之間有機(jī)地結(jié)合在一起,是 MFC最引人注目的機(jī)制。 ASSERT_VALID(pDoc)。用戶可以將一些繪圖有關(guān)的代碼添加此函數(shù)中,能在視圖中進(jìn)行圖形的繪制。 ? PreCreateWindow虛函數(shù)是在相應(yīng)窗口創(chuàng)建前被系統(tǒng)自動(dòng)調(diào)用的。說明: ? 各種類型的輸入都可以由視圖來響應(yīng)、處理,并且打印和打印預(yù)覽也是在視圖類中完成的。 // “斷言 ” m_pDocument指針可以指向的 CEx_SDIHelloDoc類 // 是一個(gè) RUNTIME_CLASS類型 return (CEx_SDIHelloDoc*)m_pDocument。 dc) const { CView::Dump(dc)。 } void CEx_SDIHelloView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add extra initialization before printing } void CEx_SDIHelloView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add cleanup after printing } MFC AppWizard // 以下是用于調(diào)試的函數(shù) ifdef _DEBUG void CEx_SDIHelloView::AssertValid() const { CView::AssertValid()。 ASSERT_VALID(pDoc)。 cs) { return CView::PreCreateWindow(cs)。 } endif CEx_SDIHelloView的成員函數(shù) GetDocument是用 inline聲明成一個(gè)內(nèi)聯(lián)函數(shù)。 endif ... protected: //{{AFX_MSG(CEx_SDIHelloView) // NOTE the ClassWizard will add and remove member functions here. // DO NOT EDIT what you see in these blocks of generated code ! //}}AFX_MSG DECLARE_MESSAGE_MAP() }。 virtual void Dump(CDumpContextamp。 //}}AFX_VIRTUAL MFC AppWizard // Implementation public: virtual ~CEx_SDIHelloView()。 virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)。若用戶在 MFC AppWizard // 的第四步中未選中 “ Printing and print preview”時(shí),則不會(huì)出現(xiàn)下列虛函數(shù)。 cs)。 // 用于返回文檔類指針 public: //{{AFX_VIRTUAL(CEx_SDIHelloView) public: virtual void OnDraw(CDC* pDC)。 MFC AppWizard ? 視圖類 CEx_SDIHelloView CEx_SDIHelloView類的 : class CEx_SDIHelloView : public CView { protected: CEx_SDIHelloView()。 AssertValid和 Dump是用于調(diào)試版本的兩個(gè)虛函數(shù)。 endif ... MFC AppWiz
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1