?? vcsxan.txt
字號:
用VC++實現自繪按鈕控制(from:vckbase)
□四川 曾 志
Microsoft Windows以其豐富一致的圖形用戶界面,簡單靈便的操
作,被廣大用戶所接受。對話框就是其中一個非常重要的界面形式,
并且Windows為其應用程序的開發者提供了相當豐富的界面資源,許多
控制可以方便地加入對話框中。但當我們需要編寫一個商業應用,需
要一個更友好的圖形用戶界面時,就會發現資源的貧乏。
Visual C++提供了一個CBitmap Button類在一定程序上緩解了
增加新資源的要求。但當我們要求在程序中能動態地改變圖形時,我
們就不得不考慮放棄CBitmapButton類,而坐下來自己做一點工作了。
一個可行的辦法就是重載CButton類(即按鈕控制)。這樣對這塊區域
的大小、位置和ID號都可以通過AppStadio方便地制作。當然這樣作最
大的好處還是在于充分利用C++的特性把繪制控制的代碼封裝了起來
,既避免了重復性開發,又使程序變得更簡潔,增強了代碼的可讀性
。
現在我們就通過創建一個名叫CColorButton的類來學習這種方法
。雖然這是一個功能非常簡單的類,通過調用成員函數ChangeColor可
改變其顏色,鼠標點中時則高亮邊框表示選中。但利用這種思路我們
只需添加幾個數據成員和重載一個函數就可以方便地實現你所需要的
功能。
在創建這個類之前,我們必須先了解WM_DRAWITEM消息。當按鈕
、組合框、列表框或菜單的某一視覺狀況發生變化時,系統就會發送
一條WM_DRAWITEM消息給這些控制的擁有者窗口。這個消息的wParam
指出這個控制的 id 號,而IParam則是一個指向DRAWITEMSTRUCT結構
的指針,該結構存放有關要繪制的項的信息以及繪制所需的類型。DR
AWITEM
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -