关于非模态对话框无法使用PreTranslateMessage(MSG* pMsg)

MONNYABC 2009-11-27 09:41:30
我在程序中通过CreateDialog创建非模态对话框。
CPrivateChatDlg *chat=new CPrivateChatDlg;
HWND hWnd=CreateDialog(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDD_PRIVATECHATDLG_DIALOG),NULL,NULL);
chat->SubclassWindow(hWnd);
chat->ShowWindow(SW_SHOW);
chat->OnInitDialog();

问题是对话框无法通过PreTranslateMessage(MSG* pMsg)来截获窗口消息。请教大家能有其它方法实现截获消息,如键盘
...全文
425 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
MONNYABC 2009-11-27
  • 打赏
  • 举报
回复
问题解决。多谢priest334
priest334 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 monnyabc 的回复:]
用create创建非模态可以,问题是他不能创建无属主的窗口 ,如果主窗口最小化,子窗口不就不能显示了。
[/Quote]

chat->Create(IDD_PRIVATECHATDLG_DIALOG, GetDesktopWindow())设置属主窗口不为你的主窗口就行了
MONNYABC 2009-11-27
  • 打赏
  • 举报
回复
我希望问题能解决。我代码没问题。我只想知道如何有其它方法
MONNYABC 2009-11-27
  • 打赏
  • 举报
回复
用create创建非模态可以,问题是他不能创建无属主的窗口 ,如果主窗口最小化,子窗口不就不能显示了。
M_S_D_N 2009-11-27
  • 打赏
  • 举报
回复
大哥,你想正常初始化就用现成MFC接口

chat.Create(CPrivateChatDlg::IDD, ) ;

不就完了?为什么要用API呢?

[Quote=引用 6 楼 monnyabc 的回复:]
引用 2 楼 priest334 的回复:
为什么不用chat->Create(IDD_PRIVATECHATDLG_DIALOG, NULL)呢?
CreateDialog函数的最后一个参数是指定处理函数,为空的话能处理消息吗


我不想用回调来处理消息。想用对话框自带的消息,由于非模式对话框 对重截OnInitDialog()无效;
我用chat->OnInitDialog()来调用。正常初始化
[/Quote]
MONNYABC 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 priest334 的回复:]
为什么不用chat->Create(IDD_PRIVATECHATDLG_DIALOG, NULL)呢?
CreateDialog函数的最后一个参数是指定处理函数,为空的话能处理消息吗
[/Quote]

我不想用回调来处理消息。想用对话框自带的消息,由于非模式对话框 对重截OnInitDialog()无效;
我用chat->OnInitDialog()来调用。正常初始化
fm4366 2009-11-27
  • 打赏
  • 举报
回复
支持+学习,不过本人非模式对话框用的少
bragi523 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 priest334 的回复:]
为什么不用chat->Create(IDD_PRIVATECHATDLG_DIALOG, NULL)呢?
CreateDialog函数的最后一个参数是指定处理函数,为空的话能处理消息吗
[/Quote]
up
fishion 2009-11-27
  • 打赏
  • 举报
回复
原来是少了DLGPROC lpDialogFunc参数
priest334 2009-11-27
  • 打赏
  • 举报
回复
为什么不用chat->Create(IDD_PRIVATECHATDLG_DIALOG, NULL)呢?
CreateDialog函数的最后一个参数是指定处理函数,为空的话能处理消息吗
fishion 2009-11-27
  • 打赏
  • 举报
回复
WindowProc试试

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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