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

正文內(nèi)容

visualcmfc編程基礎(chǔ)(編輯修改稿)

2024-11-04 19:38 本頁面
 

【文章內(nèi)容簡介】 // 主窗口派生類 : public CFrameWnd { public: CHelloWnd( ) 。 // 構(gòu)造主窗口 }。 57 最簡單的 MFC 應(yīng)用程序(續(xù)) CHelloApp HelloApp。 // 應(yīng)用程序 BOOL CHelloApp::InitInstance() { m_pMainWnd = new CHelloWnd( )。 // 主窗口 m_pMainWndShowWindow( m_nCmdShow )。 m_pMainWndUpdateWindow( )。 // 顯示 return TRUE。 } CHelloWnd::CHelloWnd( ) { Create( NULL, “Hello World!” )。 } // 創(chuàng)建主窗口結(jié)構(gòu) 58 程序調(diào)用關(guān)系 C W i n A p p : : I n i t A p p l i c a t i o nC W n d : : C re a t eC H e l l o W n d : : C H e l l o W n dC W n d : : S h o w W i n d o wC W n d : : U p d a t e W i n d o wC H e l l o A p p : : I n i t I n s t a n c eC W i n A p p : : R u nC W i n A p p : : E x i t I n s t a n c e W i n M a i n程序入口 構(gòu)造窗口類 實例初始化 構(gòu)造 CHelloWnd 對象 調(diào) CreatWindow() 調(diào) UpdateWindow() 調(diào)消息循環(huán) 59 應(yīng)用框架的作用 ?提供 WinMain 函數(shù)的程序結(jié)構(gòu) – 包括主窗口類登記和消息循環(huán) ?CWinApp 類提供可重載的函數(shù): – InitInstance 用于初始化 – 如:構(gòu)造單文檔、多文檔或?qū)υ捒虻闹鞔翱? – ExitInstance 用于結(jié)束處理 60 CWnd 類和消息處理機制 封裝 API 中窗口處理的數(shù)據(jù)結(jié)構(gòu)和相關(guān)函數(shù) ? 提供兩類成員函數(shù): 窗口 API 函數(shù):代替 SDK API 函數(shù) 消息響應(yīng)函數(shù):響應(yīng)各種系統(tǒng)消息 ? 窗口 API 函數(shù)例 ShowWindow、 ScrollWindow、 SetWindowText ? 消息響應(yīng)函數(shù)例 OnPaint、 OnLButtonDown、 OnKeyUp、 OnMouseMove、 OnClose、 OnHScroll 61 CWnd 的使用方法 ?*.CPP 文件中提供消息映射,指定消息響應(yīng)函數(shù) BEGIN_MESSAGE_MAP(派生類,窗口基類) ON_WM_PAINT( ) 各種消息的入口 ON_WM_CLOSE( ) ON_WM_KEYUP( ) ON_WM_LBUTTONDOWN( ) ON_COMMAND(菜單項標(biāo)識,響應(yīng)函數(shù)名 ) END_MESSAGE_MAP( ) ?*.H 文件中加入以下語句: DECLARE_MESSAGE_MAP( ) 62 CWnd 中的消息響應(yīng) ? CWnd 提供窗口函數(shù)負(fù)責(zé)消息識別 – 調(diào)用規(guī)定的消息響應(yīng)函數(shù) ? 多數(shù)系統(tǒng)消息由 CWnd 的消息響應(yīng)成員函數(shù)處理; – 例: ON_WM_PAINT( ) 規(guī)定 – 函數(shù) OnPaint 響應(yīng) WM_PAINT ? 菜單消息、通知消息等由指定響應(yīng)函數(shù)處理 – 例: ON_COMMAND( ItemID, OnAbout ) – 規(guī)定 OnAbout 響應(yīng)菜單項 ItemID 63 CWnd 派生類的構(gòu)造 class 派生類名 : public CWnd { 屬性、狀態(tài)的數(shù)據(jù)結(jié)構(gòu) public: 構(gòu)造函數(shù)、析構(gòu)函數(shù) 一般的成員函數(shù) afx_msg 消息響應(yīng)成員函數(shù) DECLARE_MESSAGE_MAP( ) }。 64 一個消息映射應(yīng)用例 ? 類定義 CTheApp 應(yīng)用程序類 CMainWin 主窗口類 ? 程序代碼 theApp 應(yīng)用程序?qū)ο? CTheApp::InitInstance 實例初始化函數(shù) CMainWin::OnRButtonDown 左鼠標(biāo)按下消息響應(yīng) CMainWin::OnLButtonDown 右鼠標(biāo)按下消息響應(yīng) MESSAGE_MAP 主窗口消息映射 65 運行中的事件流圖 用戶 應(yīng)用程序 主窗口 鼠標(biāo)雙擊 啟動 構(gòu)造 Windows WM_CREATE WM_PAINT … 左鼠標(biāo)按下 WM_LBUTTONDOWN 右鼠標(biāo)按下 WM_RBUTTONDOWN 66 函數(shù)調(diào)用關(guān)系C Wnd:: C r e a teC Wnd:: S how WindowC Wnd:: U pda teWindowC TheA pp: :Init InstanceWinM a inC Fr a me Wnd :: O nLB utt onD ow nC M a inWi n:: O nLB utt onD ow nC Fr a me Wnd :: O nR B utt onD ow nC M a inWi n:: O nR B utt onD ow nC Wn d:: Win dow P r ocWindow s 系統(tǒng)67 MFC 設(shè)備描述類 ? 封裝設(shè)備描述表和圖形設(shè)備接口 – 抽象描述圖形輸出設(shè)備 – ( 如 : 顯示器 , 打印機 , 繪圖儀 ) ? 常用派生類 – CPaintDC 類 用于 WM_PAINT處理 – CClientDC 類 用于其他消息處理 – CWindowDC類 用于整個窗口 68 CClientDC 的應(yīng)用 void CMainWnd::OnLButtonDown( UINT flg, CPoint pt ) { CClientDC dc( this )。 // 建立設(shè)備描述對象 CRect rct。 GetClientRect( rct )。 // 取得窗口矩形 ( rct )。 // 畫橢圓 CFrameWnd::OnLButtonDown( cfg, pt )。 } 69 CPaintDC 的應(yīng)用 void CMainWnd::OnPaint(UINT flg, CPoint pt ) { // 處理 WM_PAINT 消息 CClientDC dc( this )。 CRect rct。 GetClientRect( rct )。 ( rct )。 CFrameWnd::OnLButtonDown( cfg, pt )。 } // 當(dāng)窗口重新顯示時 , 自動產(chǎn)生此消息 70 窗口輸入消息處理 ? 鼠標(biāo)輸入消息 – 鼠標(biāo)左鍵按下: WM_LBUTTONDOWN – 鼠標(biāo)左鍵釋放: WM_LBUTTONUP – 鼠標(biāo)左鍵雙點: WM_LBUTTONDBLCLK – 鼠標(biāo)移動: WM_MOUSEMOVE ? 鍵盤輸入消息 – 鍵按下: WM_KEYDOWN – 鍵釋放: WM_KEYUP – 字符鍵輸入: WM_CHAR 71 鼠標(biāo)消息處理 ? CWnd 的鼠標(biāo)消息響應(yīng)函數(shù) afx_msg void OnLButtonDown( UINT flg, CPoint pt )。 afx_msg void OnMouseMove( UINT flg, CPoint pt )。 …… – flg 虛擬鍵標(biāo)志; pt 鼠標(biāo)的屏幕坐標(biāo) ? 鼠標(biāo)的消息入口 ON_WM_LBUTTONDOWN( ) ON_WM_MOUSEMOVE( ) …… 72 應(yīng)用例:鼠標(biāo)畫線 ? OnLButtonDown( UINT flg, CPoint pt ) pDrag = new CClientDC( this )。 // 構(gòu)造用戶區(qū)設(shè)備對象 pDragMoveTo( , )。 // 設(shè)輸出位置(設(shè)備屬性) ? OnMouseMove( UINT flg, CPoint pt ) pDragLineTo( , )。 // 畫線到點 pt、并改變輸出位置 ? OnLButtonUp( UINT flg, CPoint pt ) delete pDrag。 // 釋放設(shè)備對象 73 ? 用戶區(qū)設(shè)備類 ( 非 WM_PAINT處理 ) – CClientDC 封裝 GetDC 和 ReleaseDC 等 API – 其基類 CDC 提供 GDI 輸出 函數(shù) ? 鼠標(biāo)捕獲與釋放 – 迫使所有鼠標(biāo)消息發(fā)向當(dāng)前窗口 ? 無效區(qū)與 WM_PAINT – Invalidate 指定無效區(qū),等效于 WM_PAINT ? CWnd::Close – 提供關(guān)閉窗口的功能 74 鍵盤輸入處理 ?CWnd 的鍵盤輸入消息響應(yīng)函數(shù) – afx_msg OnKeyDown( UINT ch, UINT rep, UINT flg )。 – afx_msg OnChar( ... )。 – afx_msg OnKeyUp( ... )。 – …… – ch 字符的 ASCII值, rep 重復(fù)次數(shù), flg 虛擬鍵 ?鍵盤輸入消息入口 – ON_WM_KEYDOWN( ) – ON_WM_CHAR( ) – ON_WM_KEYUP( ) 75 應(yīng)用例:光標(biāo)狀態(tài)的切換 ? 系統(tǒng)光標(biāo)的獲得 hCursor = ::AfxGetApp( )LoadStandardCursor( IDC_WAIT )。 // AfxGetApp( ) 獲得 CMyApp 指針 ? OnKeyDown( UINT ch, UINT rep, UINT flg ) hCursor = ::SetCursor( hCursor )。 // 改變光標(biāo),并保存原光標(biāo) ? OnKeyUp( UINT ch, UINT rep, UINT flg ) hCursor = ::SetCursor(
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1