資源描述:
《《圖標光標和窗口》PPT課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第5章圖標、光標和窗口框架5.1圖像編輯器5.2圖標5.3光標5.4窗口樣式和狀態(tài)5.5綜合應(yīng)用5.1圖像編輯器5.1.1圖像編輯器1.創(chuàng)建一個新的圖標或光標在VisualC++6.0中,創(chuàng)建一個應(yīng)用程序后,當按快捷鍵Ctrl+R就可打開“插入資源”對話框,從中選擇Cursor(光標)或Icon(圖標)資源類型,單擊[新建]按鈕后,系統(tǒng)為程序添加一個新的圖標或光標資源,同時在開發(fā)環(huán)境右側(cè)出現(xiàn)圖像編輯器。圖5.1是添加一個新的圖標資源后出現(xiàn)的圖像編輯器。新設(shè)備按鈕圖5.1添加圖標后的圖像編輯器5.1圖像編輯器在創(chuàng)建新圖標或光標的時候,圖像編輯器首先創(chuàng)建的是一個適合于VGA環(huán)境中的圖像,開始的時
2、候它以屏幕色(透明方式)來填充。對于創(chuàng)建的新光標,其“熱點”被初始化為左上角的點,坐標為(0,0)。默認情況下,圖像編輯器所支持的顯示設(shè)備如表5.1所示。表5.1創(chuàng)建圖標或光標時可選用的顯示設(shè)備設(shè)備顏色數(shù)目寬度高度單顯模式(Monochrome)23232小設(shè)備模式(Small)161616標準模式(Standard)163232大模式(Large)25648485.1圖像編輯器2.選用和定制顯示設(shè)備在圖像編輯器工作窗口的控制條上,有一個“新設(shè)備圖像”(NewDeviceImage)按鈕,單擊此按鈕后,系統(tǒng)彈出相應(yīng)的新設(shè)備列表,可以從中選取需要的顯示設(shè)備,如圖5.2所示。圖5.2圖像設(shè)備選擇
3、對話框圖圖5.3自定義設(shè)備圖像除了對話框列表框顯示的設(shè)備外,還可以單擊[自定義]按鈕,在彈出的對話框中定制新的顯示設(shè)備,如圖5.3所示,在這里可指定新設(shè)備圖像的大小和顏色。5.1圖像編輯器3.設(shè)置光標熱點Windows系統(tǒng)借助光標“熱點”來確定光標實際的位置。在圖像編輯器的控制條上或光標屬性對話框中都可以看到當前的光標“熱點”位置。圖5.4是添加一個新的光標資源后出現(xiàn)的圖像編輯器??刂茥l設(shè)置熱點按鈕圖5.4添加光標后的圖像編輯器5.2圖標5.2.1圖標的調(diào)入、清除和顯示1.圖標的調(diào)入在MFC中,當在應(yīng)用程序中添加一個圖標資源后,就可以使用CWinApp::LoadIcon函數(shù)可將其調(diào)入并返回
4、一個圖標句柄。函數(shù)原型如下:HICONLoadIcon(LPCTSTRlpszResourceName)const;HICONLoadIcon(UINTnIDResource)const;其中,lpszResourceName和nIDResource分別表示圖標資源的字符串名和標識。函數(shù)返回的是一個圖標句柄。如果不想使用新的圖標資源,也可使用系統(tǒng)中預(yù)定義好的標準圖標,這時需調(diào)用CWinApp::LoadStandardIcon函數(shù),其原型如下:HICONLoadStandardIcon(LPCTSTRlpszIconName)const;其中,lpszIconName可以是下列值之一:IDI
5、_APPLICATION默認的應(yīng)用程序圖標IDI_HAND手形圖標(用于嚴重警告)IDI_QUESTION問號圖標(用于提示消息)IDI_EXCLAMATION警告消息圖標(驚嘆號)IDI_ASTERISK消息圖標5.2圖標2.圖標的消除圖標裝載后,可使用全局函數(shù)DestroyIcon來刪除圖標,并釋放為圖標分配的內(nèi)存,其原型如下:BOOLDestroyIcon(HICONhIcon);其中,hIcon用來指定要刪除的圖標句柄。3.圖標的顯示圖標的顯示一般有兩種方法:一是通過靜態(tài)圖片控件來顯示,或在其他(如按鈕)控件設(shè)置顯示;二是通過函數(shù)CDC::DrawIcon用來將一個圖標繪制在指定設(shè)備
6、的位置處(這一方法以后再討論)。4.圖標示例下面來看一個示例,如圖5.5所示,單擊[開始]按鈕,3個圖標就會每隔100ms隨機顯示,且此時[開始]按鈕變成[停止]。單擊[停止]按鈕,圖標停止更新,按鈕的名稱變成“開始”,如果3個圖標的圖案都是一樣的,則彈出消息對話框,顯示“恭喜你!”,否則顯示“失敗!”。5.2圖標圖5.5圖標示例分析和思考:(1)從圖5.5中可以看出,該示例是一個對話框應(yīng)用程序。(2)需要創(chuàng)建3個圖標資源,且通過3個靜態(tài)圖片控件來顯示。為了能在程序中動態(tài)地改變靜態(tài)控件顯示的圖標,還需為控件添加CStatic類變量,然后通過CStatic::SetIcon來指定,該函數(shù)原型如
7、下:HICONSetIcon(HICONhIcon);其中,hIcon用來指定要顯示的圖標句柄。函數(shù)成功調(diào)用后,將返回上一次圖標的句柄。(3)由于每隔100ms隨機顯示這些圖標,因而需要啟動計時器,并在WM_TIMER消息映射函數(shù)中添加相關(guān)代碼,且還需用rand函數(shù)來產(chǎn)生隨機序列。另外,為了避免每次所產(chǎn)生的隨機序列相同,在產(chǎn)生隨機數(shù)之前使用srand庫函數(shù)來重新指定隨機種子。示例步驟如下:5.2圖標[例Ex_