描述:
我开始找到一个AxGrid(也是CodeProject上)的,压根儿没有对事件进行处理,我把
该控件放到IE中测试,连上下左右键都不支持,不知道那个老外怎么想的 :(
后来我用VC6自己做了一个ActiveX工程(不是ATL),用了COleControl,对键盘事件进行了一
些处理
BOOL CMyGridCtrl::PreTranslateMessage(MSG* pMsg)
{
switch (pMsg->message) {
case WM_KEYDOWN:
case WM_KEYUP:
switch (pMsg->wParam)
{
case VK_TAB:
case VK_RETURN:
case VK_UP:
case VK_DOWN:
case VK_LEFT:
case VK_RIGHT:
case VK_HOME:
case VK_END:
if ( IsWindow(m_GridCtrl.GetSafeHwnd()) ) {
::SendMessage(m_GridCtrl.GetSafeHwnd(), pMsg->message, pMsg->wParam,
pMsg->lParam);
return TRUE;
}
}
break;
}
return COleControl::PreTranslateMessage(pMsg);
}
也有问题,回车键居然不进入输入状态了,晕死
其时我挺想使用ATL的,但是那位大侠教教如何使用ATL把MFCGrid控件包起来,(尽量
不改动MFCGrid2.25的源码)???
能解决使用COleControl的键盘响应问题也可以呀(看到烈火金刚原来回复的帖子,居然要用钩子去解决键盘输入问题,郁闷)...唉,我没有思路怎么做啊,
谁给个捷径,指一条路啊,谢谢!
解决方案1:
没收到回车事件是不是因为控件没有得到焦点