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

正文內容

第8章繪圖、字體和位圖-資料下載頁

2025-07-20 12:26本頁面
  

【正文】 nt y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop )。 位圖、圖標與光標 圖標 一個應用程序允許有兩個尺寸不一的圖標來標識自己的身份:一種是普通圖標 , 也稱為大圖標 , 它是 32 x 32的位圖 。 另一種是小圖標 , 它是大小為 16 x 16的位圖 。 1. 圖標的調入和清除 在 MFC中 , 使用 CWinApp::LoadIcon函數(shù)可將一個圖標資源調入并返回一個圖標句柄 。函數(shù)原型如下: HICON LoadIcon( LPCTSTR lpszResourceName ) const。 HICON LoadIcon( UINT nIDResource ) const。 其中 , lpszResourceName和 nIDResource分別表示圖標資源的字符串名和標識 。 如果不想創(chuàng)建新的圖標資源 , 也可使用系統(tǒng)中預定義好的標準圖標 , 這時需調用 CWinApp::LoadStandardIcon 函數(shù) , 其原型如下: HICON LoadStandardIcon( LPCTSTR lpszIconName ) const。 其中 , lpszIconName可以是下列值之一: IDI_APPLICATION 默認的應用程序圖標 IDI_HAND 手形圖標 (用于嚴重警告 ) IDI_QUESTION 問號圖標 (用于提示消息 ) IDI_EXCLAMATION 警告消息圖標 (驚嘆號 ) IDI_ASTERISK 消息圖標 全局函數(shù) DestroyIcon可以用來刪除一個圖標 , 并釋放為圖標分配的內存 , 其原型如下 BOOL DestroyIcon( HICON hIcon )。 位圖、圖標與光標 2. 圖標的繪制 函數(shù) CDC::DrawIcon用來將一個圖標繪制在指定的位置處 , 其原型如下: BOOL DrawIcon( int x, int y, HICON hIcon )。 BOOL DrawIcon( POINT point, HICON hIcon )。 其中 , (x, y)和 point用來指定圖標繪制的位置 , 而 hIcon用來指定要繪制的圖標句柄 。 3. 應用程序圖標的改變 在用 MFC AppWizard創(chuàng)建的應用程序中 , 圖標資源 IDR_MAINFRAME用來表示應用程序窗口的圖標 。 實際上 , 程序中還可使用 GetClassLong和 SetClassLong函數(shù)重新指定應用程序窗口的圖標 , 函數(shù)原型如下: DWORD SetClassLong( HWND hWnd, int nIndex, LONG dwNewLong)。 DWORD GetClassLong( HWND hWnd, int nIndex)。 nIndex用來指定與 WNDCLASSEX結構相關的索引 , 它可以是下列值之一 : GCL_HBRBACKGROUND 窗口類的 背景畫刷句柄 GCL_HCURSOR 窗口類的 的光標句柄 GCL_HICON 窗口類的 的圖標句柄 GCL_MENUNAME 窗口類的 的菜單資源名稱 [例 Ex_Icon] 圖標按一定的序列顯示 , 模擬動畫效果 。 (1) 用 MFC AppWziard創(chuàng)建一個單文檔應用程序 Ex_Icon。 位圖、圖標與光標 (2) 創(chuàng)建六個圖標 , 大小為 16 16, ID號分別為默認的 IDI_ICON1~ IDI_ICON4。 用圖形編 輯器繪制圖標 , 結果如下圖所示 。 (3) 為 CMainFrame類添加一個成員函數(shù) ChangeIcon, 用來切換應用程序的圖標 。 該函數(shù)的 代碼如下: void CMainFrame::ChangeIcon(UINT nIconID) { HICON hIconNew = AfxGetApp()LoadIcon(nIconID)。 HICON hIconOld = (HICON)GetClassLong(m_hWnd, GCL_HICON)。 if (hIconNew != hIconOld) { 位圖、圖標與光標 DestroyIcon(hIconOld)。 SetClassLong(m_hWnd, GCL_HICON, (long)hIconNew)。 RedrawWindow()。 // 重繪窗口 } } (4) 在 CMainFrame::OnCreate函數(shù)的最后添加計時器設置代碼: int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == 1) return 1。 ... SetTimer(1, 500, NULL)。 return 0。 } (5) 用 ClassWizard為 CMainFrame類添加 WM_TIMER的消息映射函數(shù) , 并增加下列代碼: void CMainFrame::OnTimer(UINT nIDEvent) { static int icons[] = { IDI_ICON1, IDI_ICON2, IDI_ICON3, IDI_ICON4}。 static int index = 0。 位圖、圖標與光標 ChangeIcon(icons[index])。 index++。 if (index3) index = 0。 CFrameWnd::OnTimer(nIDEvent)。 } (6) 用 ClassWizard為 CMainFrame類添加 WM_DESTROY的消息映射函數(shù) , 并增加下列代碼: void CMainFrame::OnDestroy() { CFrameWnd::OnDestroy()。 KillTimer(1)。 } (7) 編譯并運行 。 可以看到任務欄上的按鈕以及應用程序的標題欄上四個圖標循環(huán)顯示的 動態(tài)效果 , 顯示速度為每秒兩幀 。 光標 1. 使用系統(tǒng)光標 Windows預定義了一些經(jīng)常使用的標準光標 , 這些光標均可以使用函數(shù) CWinApp:: LoadStandardCursor加載到程序中 , 其函數(shù)原型如下: HCURSOR LoadStandardCursor( LPCTSTR lpszCursorName ) const。 其中 , lpszCursorName用來指定一個標準光標名 , 它可以是下列宏定義: IDC_ARROW 標準箭頭光標 位圖、圖標與光標 IDC_IBEAM 標準文本輸入光標 IDC_WAIT 漏斗型計時等待光標 IDC_CROSS 十字形光標 IDC_UPARROW 垂直箭頭光標 IDC_SIZEALL 四向箭頭光標 IDC_SIZENWSE 左上至右下的雙向箭頭光標 IDC_SIZENESW 左下至右上的雙向箭頭光標 IDC_SIZEWE 左右雙向箭頭光標 IDC_SIZENS 上下雙向箭頭光標 例如 , 加載一個垂直箭頭光標 IDC_UPARROW的代碼如下: HCURSOR hCursor。 hCursor = AfxGetApp()LoadStandardCursor(IDC_UPARROW)。 2. 使用光標資源 用編輯器創(chuàng)建或從外部調入的光標資源 , 可通過函數(shù) CWinApp::LoadCursor 進行加載 ,其原型如下: HCURSOR LoadCursor( LPCTSTR lpszResourceName ) const。 HCURSOR LoadCursor( UINT nIDResource ) const。 其中 , lpszResourceName和 nIDResource分別用來指定光標資源的名稱或 ID號 。 例如 , 當光標資源為 IDC_CURSOR1時 , 則可使用下列代碼: HCURSOR hCursor。 位圖、圖標與光標 hCursor = AfxGetApp()LoadCursor(IDC_CURSOR1)。 需要說明的是 , 也可直接用全局函數(shù) LoadCursorFromFile加載一個外部光標文件 , 例如 HCURSOR hCursor。 hCursor = LoadCursorFromFile(“c:\\windows\\cursors\\”)。 3. 更改程序中的光標 更改應用程序中的光標除了可以使用 GetClassLong和 SetClassLong函數(shù)外 , 最簡單的方法是用 ClassWizard映射 WM_SETCURSOR消息 。 CWnd為此消息的映射函數(shù)定義這樣的原型: afx_msg BOOL OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message )。 [例 Ex_Cursor] 鼠標移動到標題欄時 , 改變光標 。 加入下列代碼: BOOL CMainFrame::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { BOOL bRes = CFrameWnd::OnSetCursor(pWnd, nHitTest, message)。 if (nHitTest == HTCAPTION ) { HCURSOR hCursor。 hCursor = AfxGetApp()LoadCursor(IDC_CURSOR1)。 SetCursor(hCursor)。 bRes = TRUE。 } return bRes。 } 這樣 , 當鼠標移動到標題欄時 , 光標就變成了 IDC_CURSOR1定義的形狀了 。
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1