具備輸入焦點的窗口將會獲得全部的鍵盤輸入消息。咱們能夠經過類CWnd的成員函數GetFocus來使對話框中的控件得到輸入焦點。試將下面的代碼加到消息處理函數OnInitDialog的return語句前:函數
m_bnClickhere.SetFocus();
或
GetDlgItem(IDC_CLICKHERE)->SetFocus();
編譯並運行程序。很是奇怪,輸入焦點並無被設置到下壓按鈕「單擊這裏」上。依然是按鈕「肯定」擁有當前輸入焦點。it
請注意這樣的事實:
l 注意:
l 若是在消息處理成員函數OnInitDialog中將輸入焦點設置到指定的控件,則函數應該返回FALSE,這是由於若是WM_INITDIALOG消息的處理函數返回真值,Windows會將輸入焦點設置爲對話框中的第一個控件。所以,若是在該處理函數中設置了控件的輸入焦點,WM_INITDIALOG消息的處理函數應該返回假值。 編譯
將下面的代碼
return TRUE;
修改成
return FALSE;
這時再編譯並運行程序,則輸入焦點將被正常地設置到下壓按鈕「單擊這裏」上。這時按下空格鍵至關於在按鈕「單擊這裏」上單擊鼠標左鍵。程序