四联光电智能照明论坛

标题: WebBrowser和Edit控件同时存在时光标BUG [打印本页]

作者: 魔幻使者Jack    时间: 2015-11-16 17:21
标题: WebBrowser和Edit控件同时存在时光标BUG
之前在网上看到过,大概就是对话框上同时有WebBrowser和Edit控件,如果鼠标点击WebBrowser控件后再点击Edit控件,Edit控件的输入光标不能显示,但能够正确输入文字。
亲自试验了一下(VS2012),确实存在这个BUG,然后网上搜了下解决方案,没有找到,╮(╯_╰)╭。
自己研究了一下,最终解决方案就是重载PreTranslateMessage,在里面帮它SetFocus一下,搞定。附上代码:
  1. BOOL CXXDlg::PreTranslateMessage(MSG* pMsg)
  2. {
  3.         if (pMsg->message==WM_LBUTTONDOWN)
  4.         {
  5.                 CWnd *pwnd=GetDlgItem(IDC_EDIT_STR);
  6.                 if (pMsg->hwnd==pwnd->GetSafeHwnd())
  7.                 {
  8.                         pwnd->SetFocus();
  9.                 }
  10.         }
  11.         return CDialogEx::PreTranslateMessage(pMsg);
  12. }
复制代码


作者: gxm771208    时间: 2015-11-17 09:57
你这代码段这块,还能直接复制,怎么弄出来的??
作者: 魔幻使者Jack    时间: 2015-11-17 10:47
gxm771208 发表于 2015-11-17 09:57
你这代码段这块,还能直接复制,怎么弄出来的??

点那个添加代码,然后放里面


作者: gxm771208    时间: 2015-11-17 12:11
魔幻使者Jack 发表于 2015-11-17 10:47
点那个添加代码,然后放里面

哦,谢了,昨晚试了几次没弄出来。
作者: admin    时间: 2015-11-17 12:15
魔幻使者Jack 发表于 2015-11-17 10:47
点那个添加代码,然后放里面

果然好用




欢迎光临 四联光电智能照明论坛 (http://5xhome.com/) Powered by Discuz! X3.2