Web Browser控件跟Combo Box在一个对话框上获取输入焦点
Web Browser控件和Combo Box在一个对话框上获取输入焦点
问题大致同上,我简单说下背景:
对话框上仅放一个组合框,组合框默认有输入焦点,这个输入焦点不仅仅是可以输入,要有提示用户输入的“黑色竖线”如图

对话框上仅放一个浏览器控件的话,譬如打开百度首页,首页的输入框是有焦点的,意味浏览器控件有焦点。
把两个放在一个对话框上,打开对话框,去点组合框,组合框此时是可以输入的,但是没有那条黑色竖线,问题就是这样,感觉总怪怪的,求高手给个解决办法,重现我的黑线
本是想着写个小浏览器,至少要有地址栏吧,就想到组合框,没有想到出这问题,真心求解决
------解决方案--------------------
问题大致同上,我简单说下背景:
对话框上仅放一个组合框,组合框默认有输入焦点,这个输入焦点不仅仅是可以输入,要有提示用户输入的“黑色竖线”如图
对话框上仅放一个浏览器控件的话,譬如打开百度首页,首页的输入框是有焦点的,意味浏览器控件有焦点。
把两个放在一个对话框上,打开对话框,去点组合框,组合框此时是可以输入的,但是没有那条黑色竖线,问题就是这样,感觉总怪怪的,求高手给个解决办法,重现我的黑线
本是想着写个小浏览器,至少要有地址栏吧,就想到组合框,没有想到出这问题,真心求解决
ComboBox
对话框
浏览器
WebBrowser
控件
------解决方案--------------------
BOOL CWebTestDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
switch(pMsg->message)
{
case WM_LBUTTONDOWN:
{
COMBOBOXINFO comboboxinfo = {sizeof(COMBOBOXINFO)};
((CComboBox *)GetDlgItem(IDC_COMBO1))->GetComboBoxInfo(&comboboxinfo);
if(pMsg->hwnd == comboboxinfo.hwndItem)
{
::SetFocus(comboboxinfo.hwndItem);
::ShowCaret(comboboxinfo.hwndItem);
}
}
break;
}
return CDialog::PreTranslateMessage(pMsg);
}