我的对话框中含有一个ComboBox控件,当我在该控件里输入字符按Enter键后,对话框就消失了,好奇怪,对话框上面又没IDOK按钮,????
谁给我解决办法?

解决方案 »

  1.   

    默认的OnOk响应他了。
    重载OnOK就行了。
      

  2.   

    这是因为:当用户按下Enter键时,Windows就会自动去查找“输入焦点”落在了哪一个按钮上,获得焦点的按钮的四周将被点线矩形框包围。如果所有按钮都没有获得输入焦点,Windows就会自动去寻找程序或者资源所指定的默认按钮(默认按钮的边框比较粗)。如果对话框没有默认按钮,那么即使对话框中没有OK按钮,OnOK函数也会自动被调用。
    为了使Enter键无效,最简单的办法就是将OnOK函数写成空函数。
      

  3.   

    不好意思,不是重载,是响应IDOK的BN_CLICKED消息,在里面别调用基类的那个,因为CDialog::OnOK调用了EndDialog,使得对话框不见了。
      

  4.   

    那么我怎样才能改变输入焦点呢,譬如我想在对话框初始化时让焦点落在ComboBox控件上?