天天看點

Windows程式設計的方方面面

(一)控件

滾動條

SCROLLINFO結構中的nPage和nPos是有範圍限制的,超出範圍設定時,Windows會自動糾正。

0<=nPage<=nMax-nMin+1

0<=nPos<=nMax-(nPage-1)

是以不要總以為自己設定了頁面大小,設定了滾動條位置,滾動條的頁面和位置就一定會如你所設定。

編輯框

在使用Edit_SetSel的時候,一定要将焦點定格在Edit上,否則選擇效果不顯示。

 (二)程式設計技巧

視窗子類

對于改變控件一些正常行為用視窗的子類的方式是非常好的。例如用滑鼠點選某個按鈕時,将某個編輯框全選,不要以為在WM_COMMAND裡面對應的按鈕消息裡面添加就可以了。可以試一下是不行的?關鍵在于滑鼠點選,在滑鼠左鍵松開的時刻,先發送WM_COMMAND消息,後發送WM_SETFOCUS給按鈕,因為要讓編輯框全選必須讓編輯框得到焦點,但是在WM_COMMAND把焦點給編輯框隻是暫時的,緊接着按鈕本身的WM_LBUTTONUP會把焦點設定到自己身上,是以編輯框的獲得焦點隻是一瞬間。為了解決這個問題,就是給按鈕使用視窗子類的方法。在WM_LBUTTONUP中先調用CallWindowProc,然後在把焦點轉給編輯框。

繼續閱讀