CComboBox 控件,响应ON_CBN_SELCHANGE消息时为何鼠标光标不显示? m_searchCombo.GetWindowText(strWinText);// ::SetFocus(m_searchCombo.m_hWnd);why setfocus method doesn't work?在该控件上输入时,鼠标好像被隐藏了,如何让鼠标光标显示出来? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TO cnzdgs :在编辑器里(textbox、combobox甚至是word)输入时,鼠标就会隐藏!是WINDOWS系统的一个特点!在ShowDropDown()之后鼠标就不会见了之前没操作过鼠标,请问该问题如何解决? 既然是WINDOWS的特点那他就有内部机制隐藏光标那要看他内部是在哪个地方隐藏的,重载都不一定好使怎么解决?晃下鼠标光标就出来了 插字符caret, 光标cursor, 鼠标mouse先弄清楚这几个概念 . to 夏至矽响应ON_CBN_SELCHANGE消息的函数里面我是做了这样一些事情1:根据用户输入内容(此内容为模糊内容)查找相关选项比如用户输入"b"下拉框里面可能出现"不能","不可以","不够"等词条2:输入完成后想调用ShowDropDown()显示上述词条3:当用户选择某一词条,比如选中"不够"时,定位到另一个树控件的相关Item上面去问题出在2之后即输入完成后无法找到鼠标光标,此时也能选中,但无法找到鼠标的光标,造成假死现象如果不调用ShowDropDown(),用户手动点下拉框出现的那个箭头则没此问题但不够人性化.这是我的问题,麻烦解答. http://www.codeproject.com/KB/combobox/akautocomplete.aspxhttp://www.codeproject.com/KB/combobox/combocompletion.aspxhttp://www.codeproject.com/KB/combobox/automultcolcombobox.aspx这都是auto complete combobox的例子 TO 满天星ShowCursor显示鼠标方法不可用不起作用,谢谢解答.我再找找本想在显示下拉框之前用keybd_event(VK_ESCAPE,0x45,KEYEVENTF_EXTENDEDKEY | 0,0 );发送一个模拟ESC的消息再ShowDropDown结果发现行不通,在输入后不显示下拉框内容了...thank you all the same ShowCursor怎么会不起作用?另外,如果你在响应CBN_SELCHANGE时要执行很长时间,应该另创建一个线程来处理,避免阻塞主窗口的消息循环。 TO 满天星:开线程我不会以下是响应CBN_SELCHANGE消息的函数,麻烦您指导一下.OnCbnEditchangeSearchcombo(){ // TODO: 在此添加控件通知处理程序代码 int nSize = m_searchCombo.GetCount(); for (int n = nSize;n >0;n--) m_searchCombo.DeleteString(n-1); CString strWinText; m_searchCombo.GetWindowText(strWinText); int nCount = strWinText.GetLength(); if(nCount < 1) return; vector<CString> strAddVec; //判断首字符是否是汉字 //char chFirst = strWinText.GetAt(0); wchar_t * chPtr = strWinText.GetBuffer(0); int nRes = isascii(* chPtr); // 0代表汉字,1代表英文字符 //free(chPtr); if(nRes == 0)//如果是汉字 FintItemByChinese(strWinText,strAddVec); else //如果是英文字符 FintItemByEnglish(strWinText,strAddVec); for (int k = 0;k < strAddVec.size();k++) m_searchCombo.AddString(strAddVec[k]);// keybd_event(VK_ESCAPE,0x45,KEYEVENTF_EXTENDEDKEY | 0,0 ); m_searchCombo.ShowDropDown(); ShowCursor();// PostMessage(CB_SETCURSEL,0, 0); } 问题已解决谢谢各位ShowDropDown();之后SetCursor(LoadCursor(NULL, IDC_ARROW));即可 ADO初始化数据连接函数中的不懂的地方 进程内com组件(dll)为何不能放在中文目录下? WIN32 SDK编程中一个变量申明的问题 关于VS.net2003生成安装包上的图片如何修改?---------------------UP有分 如何写磁带备份程序 如何获取特定IE窗口的编辑框的内容 CListView显示图标的绝对难题! 用SDK做的程序,与WEB SERVER通讯,现在有一点小问题,急,请多帮忙,谢谢!!! 请问现在VC那个方向比较热门…… 关于文件长度…… LINK ERROR ActiveX控件 VARANT
在编辑器里(textbox、combobox甚至是word)输入时,鼠标就会隐藏!
是WINDOWS系统的一个特点!
在ShowDropDown()之后鼠标就不会见了
之前没操作过鼠标,请问该问题如何解决?
那要看他内部是在哪个地方隐藏的,重载都不一定好使怎么解决?晃下鼠标光标就出来了
先弄清楚这几个概念 .
响应ON_CBN_SELCHANGE消息的函数里面我是做了这样一些事情1:根据用户输入内容(此内容为模糊内容)查找相关选项
比如用户输入"b"下拉框里面可能出现"不能","不可以","不够"等词条
2:输入完成后想调用ShowDropDown()显示上述词条
3:当用户选择某一词条,比如选中"不够"时,定位到另一个树控件的相关Item上面去
问题出在2之后
即输入完成后无法找到鼠标光标,此时也能选中,但无法找到鼠标的光标,造成假死现象
如果不调用ShowDropDown(),用户手动点下拉框出现的那个箭头则没此问题
但不够人性化.
这是我的问题,麻烦解答.
http://www.codeproject.com/KB/combobox/combocompletion.aspx
http://www.codeproject.com/KB/combobox/automultcolcombobox.aspx这都是auto complete combobox的例子
ShowCursor显示鼠标方法不可用
不起作用,谢谢解答.
我再找找
本想在显示下拉框之前用keybd_event(VK_ESCAPE,0x45,KEYEVENTF_EXTENDEDKEY | 0,0 );发送一个模拟ESC的消息
再ShowDropDown
结果发现行不通,在输入后不显示下拉框内容了...
thank you all the same
另外,如果你在响应CBN_SELCHANGE时要执行很长时间,应该另创建一个线程来处理,避免阻塞主窗口的消息循环。
开线程我不会
以下是响应CBN_SELCHANGE消息的函数,麻烦您指导一下.OnCbnEditchangeSearchcombo()
{
// TODO: 在此添加控件通知处理程序代码
int nSize = m_searchCombo.GetCount();
for (int n = nSize;n >0;n--)
m_searchCombo.DeleteString(n-1);
CString strWinText;
m_searchCombo.GetWindowText(strWinText);
int nCount = strWinText.GetLength();
if(nCount < 1)
return;
vector<CString> strAddVec;
//判断首字符是否是汉字
//char chFirst = strWinText.GetAt(0);
wchar_t * chPtr = strWinText.GetBuffer(0);
int nRes = isascii(* chPtr); // 0代表汉字,1代表英文字符
//free(chPtr);
if(nRes == 0)//如果是汉字
FintItemByChinese(strWinText,strAddVec);
else //如果是英文字符
FintItemByEnglish(strWinText,strAddVec);
for (int k = 0;k < strAddVec.size();k++)
m_searchCombo.AddString(strAddVec[k]);
// keybd_event(VK_ESCAPE,0x45,KEYEVENTF_EXTENDEDKEY | 0,0 ); m_searchCombo.ShowDropDown();
ShowCursor();
// PostMessage(CB_SETCURSEL,0, 0);
}
谢谢各位ShowDropDown();之后SetCursor(LoadCursor(NULL, IDC_ARROW));即可