(一)控件
滾動條
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,然後在把焦點轉給編輯框。