PreTranslateMessage截获子窗口的消息

PreTranslateMessage截获子窗口的消息

最近在搞一个小工具,当点击某个菜单时弹出一个对话框,对话框里面有个ComboBox控件,在我的主程序中我实现了虚函数PreTranslateMessage,这时问题出现了:

当我点击ComboBox控件使其下拉的时候,下拉条总是一闪而过(下拉之后自动收回),而且这时候对话框失去焦点,使得程序无法选择ComboBox里面的内容。

在搜遍了很多资料之后,发现是PreTranslateMessage处理了本该由子对话框处理的消息,于是在主程序的PreTranslateMessage中加了一句话判断消息的来源是否来自主程序的窗口:

BOOL CLockDlg::PreTranslateMessage(MSG* pMsg)
{
	if(pMsg->hwnd == this->m_hWnd)
	{
		//本窗口的消息
	}
	return CDialog::PreTranslateMessage(pMsg);
}

windows消息处理机制需要多联系多总结。一味看书貌似作用不大。出现问题在看书。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值