我参考vckbase上的一个例子,实现了可编辑的ListCtrl
ListCtrl包括三个属性列 暂用list1、list2、list3
list1、list2上面各加载了combox1、combo2,list3上面加载了一个Edit
而且每一行中的list1和list2中的下拉框内容都不一样现在遇到的问题是,我用的那个例子的EDIT文本框的输入必须通过Enter键才能完成,而我一按Enter键ListCtrl就会把焦点移到了下一行的第一列上,这时就显示了combox1,而其中的下拉框还是第一行的下拉内容,而不是我所需要的第二行的下拉内容。
如果不按Enter键就不会出现这个问题,单击第二行第一列会显示我所要的结果。现在我就希望能够改进这个问题,最重要的还是单击Enter键后不会自动移到下一行,不知道各位仁兄有没有什么好办法,在线等,先谢了!
ListCtrl包括三个属性列 暂用list1、list2、list3
list1、list2上面各加载了combox1、combo2,list3上面加载了一个Edit
而且每一行中的list1和list2中的下拉框内容都不一样现在遇到的问题是,我用的那个例子的EDIT文本框的输入必须通过Enter键才能完成,而我一按Enter键ListCtrl就会把焦点移到了下一行的第一列上,这时就显示了combox1,而其中的下拉框还是第一行的下拉内容,而不是我所需要的第二行的下拉内容。
如果不按Enter键就不会出现这个问题,单击第二行第一列会显示我所要的结果。现在我就希望能够改进这个问题,最重要的还是单击Enter键后不会自动移到下一行,不知道各位仁兄有没有什么好办法,在线等,先谢了!
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_ESCAPE|VK_RETURN)
{
return TRUE;
}
else
return CDialog::PreTranslateMessage(pMsg);
}
如果屏蔽回车消息 文本框的文本无法输入了
我用的是别人封装的类 不是很清楚如何将文档框的文本输入方式改为不用Enter输入
还请各位指教!
void CYourProgramme::PreTranslateMessage(MSG* pMsg)
{
if (WM_KEYFIRST <= pMsg->message && pMsg->message <= WM_KEYLAST)
{
if(pMsg->message==WM_KEYDOWN)
{
int iID = ::GetDlgCtrlID(hWnd);
if(iID == IDC_YOURLISTID)
{
if(pMsg->wParam==13)//回车
{
return;
}
}
}
}
}
现在只有首先屏蔽回车消息,其次将文本框的文本输入改为即输即入的方式,而不通过回车键响应!
不过那个封装类不好改的哦!
我参考的就是http://www.vckbase.com/code/listcode.asp?mclsid=3&sclsid=323中的“另一种实现可编辑的ListCtrl的方法”!