急!求助!输入框如何截获消息事件。

kogai_Sai 2009-05-26 03:46:48
各位大侠好!

小弟现在的项目中遇到一个问题:
CreateWindow(TEXT("edit"), TEXT(""), WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, pcep->hwnd, NULL, NULL, NULL);
用这个创建输入框后,所有的按键消息事件全部被这个子窗口吸收,在主消息循环里面没法截获按键消息事件,比如我输完字要点击“回车”键来表示已经输入完毕准备提交,可是所有的按键都只在输入框内有效,这样小弟无法截获回车事件来进行其他处理,请问各位高手有什么截获事件的解决办法,或是有能在点击某个按钮就让这个窗口里面的事件全部无效,把按键事件重新交回主循环的方法?
ps:不能用销毁再重新创建输入框的解决方法,因为小弟项目的特殊需要,得另想其他解决方法,谢谢大家了!:)

向所有给予帮助的人致敬!
...全文
104 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kogai_Sai 2009-05-27
  • 打赏
  • 举报
回复
问题解决,好高兴啊,虽然不是在这里解决的。但为了答谢各位的关照。留言者都有分。请以后多多关照!:)
儿大不由爷 2009-05-26
  • 打赏
  • 举报
回复
子类化
kogai_Sai 2009-05-26
  • 打赏
  • 举报
回复
谢谢各位,小弟现在的问题集中在:
触摸屏上有个用x,y值画出的“提交”按钮,要做成的功能是点击“提交”,输入框的字就取出去做操作,同时把输入框里面的按键事件无效,让按键事件能重新回到主循环,现在的问题是:输入框的事件回不到主循环,主循环截不到按键事件。这样在点击“提交后”,按键事件无法响应(因为都被输入框吸收),这样按键就废了,就像死机一样。
请问高手们:除了销毁输入框怎样才能把按键事件重新交给主循环呢?
beyondma 2009-05-26
  • 打赏
  • 举报
回复
你得用SETWINDOWLONG把他默认的回调设成你的才行。
世外涛缘 2009-05-26
  • 打赏
  • 举报
回复
在中截获消息,再通过PostMessage把消息发给父窗口。

BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
AFX_EVENT *pEvent = (AFX_EVENT *)pExtra;

//If this is a control notification event.
if (nCode == CN_EVENT)
{
// If we have information on this event.
if (pEvent)
{
// Event DISPID is stored at pEvent->m_dispid
// Event DISPPARAMS are stored at pEvent->m_pDispParams
// Handle the event from here...
}
}

return CWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}

kogai_Sai 2009-05-26
  • 打赏
  • 举报
回复
是的。谢谢楼上,devdiv.net真不错,高手热心,实力也强:)我调调,能搞定就结贴了。
jenson123 2009-05-26
  • 打赏
  • 举报
回复
看一下这个,好像也是你发的帖子。但已经有人回答了。
http://www.devdiv.net/thread-9449-1-1.html

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧