我在对话上放了个OCX,现在我想拦截OCX的所有键盘键入.我试过在对话框的PreTranslateMessage这里拦截,但拦不到.谢谢了!!
解决方案 »
- 在CEditView视图中显示文字,为什么刷新后文字就消失?
- 做个调查:你的公司做项目写详细设计吗???
- [急切求助]WinExec-ShellExecute-CreateProcess启动有依赖文件的exe程序。。。
- 怎样判断是否选中了我绘制的曲线呢
- 请高手推荐一本MFC入门的实例好书。谢谢
- 我有一个字符串,里面有数个全角的逗号,现在我要将它们转化成半角的逗号,如何做?
- 哪位高手能帮帮小弟啊,急急急!!!!!!!!!!!!
- 显示存储器容量怎么算
- 关于绘图函数的一些问题
- asp中调用com报一个错误“不能运行进程外组件”,请问如何处理,大侠们帮忙啦?
- Update出错如何解决?
- 怎样用VC访问广域网的XML,分不够可以在开N贴给分!!
......
WNDCLASS wndclass; EnterCriticalSection(&v_csecThreadSynch); if (GetClassInfo(v_hModule, "DSOFramerOCXWnd", &wndclass) == 0)
{
memset(&wndclass, 0, sizeof(WNDCLASS));
wndclass.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS;
wndclass.lpfnWndProc = CDsoFramerControl::ControlWindowProc;
wndclass.hInstance = v_hModule;
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.lpszClassName = "DSOFramerOCXWnd";
RegisterClass(&wndclass);
} m_hwnd = CreateWindowEx(0, "DSOFramerOCXWnd", NULL,
WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE,
rcPos.left, rcPos.top, m_Size.cx, m_Size.cy,
m_hwndParent, NULL, v_hModule, NULL); if (m_hwnd) SetWindowLong(m_hwnd, GWL_USERDATA, (LONG)this);......我想应该是在ControlWindowProc这个函数里拦吧,可是就是拦不了WM_KEYDOWN,但WM_COMMAND就能.还有它的工具条的单击也拦不了.帮帮我吧..
工具条的单击当然也没有,这个单击消息是给给它的工具条窗口的,不是发给它的。PreTranslateMessage是mfc的窗口才有的,你的是直接API创建的,没有PreTranslateMessage。
WM_KEYDOWN
WM_KEYUP
WM_CHAR
你都拦截了吗?
case WM_COMMAND:
MessageBox(NULL,"菜单命令","命令",MB_OK);
pCtl->OnMenuMessage(msg, wParam, lParam);
break;
case WM_KEYDOWN:
case WM_KEYUP:
case WM_CHAR:
case WM_DEADCHAR:
case WM_SYSKEYDOWN:
case WM_SYSKEYUP:
case WM_SYSCHAR:
case WM_SYSDEADCHAR:
case WM_KEYLAST:
MessageBox(NULL,"dd","dd",MB_OK);
break;