关于SetFocus的简单问题
在一个对话框中,我在对话框的OnInitDialog()最后加了一句
m_EditComponentid1.SetFocus();
m_EditComponentid1是一个ID为IDC_EDIT_COMPONENTID1编辑框,但运行程序打开时焦点并没有停到这个编辑框上
用((CButton *)GetDlgItem(IDC_EDIT_COMPONENTID1))-> EnableWindow(FALSE);也没用,不知道是什么原因请大家说一下
是不是不应该写在OnInitDialog()里?那要做到窗口打开就定好焦点应该写在哪里?
[解决办法]
OnInitDialog中返回FALSE
[解决办法]
你在layout-〉lab orders中,点击你的编辑框,使其序号为1就可以了
[解决办法]
呵呵,看看MSDN上关于WM_INITDIALOG的说明吧
wParam
Handle to the control to receive the default keyboard focus. The system assigns the default keyboard focus only if the dialog box procedure returns TRUE.
[解决办法]
搂主
RETURN FALSE!
下面是API的关于WM_INITDIALOG消息!应该差不多,WM_INITDIALOG消息是对话框接收到的第一个消息,这个消息只发送给对话框程序。如果对话框程序传回TRUE,那么Windows将输入焦点设定给对话框中第一个具有WS_TABSTOP样式的子窗口控件。另外,对话框程序也可以在处理WM_INITDIALOG时使用SetFocus来将输入焦点设定为对话框中的某个子窗口控件,然后传回FALSE。