为什么子窗口能加载,但是不能响应事件呢?

quiton 2007-06-13 05:59:44
我做的是弹出式的窗口,上面是菜单栏。

点击菜单某一选项后,在下面加载一个子窗口,代码如下:

if(m_ModifyInfoChild.m_hWnd == NULL)
{
m_ModifyInfoChild.Create(IDD_MODIFYINFO,this);
CRect rc(0,58,1024,768);
m_ModifyInfoChild.MoveWindow(rc);
}
if(m_DeleteInfoChild.m_hWnd)
{
m_DeleteInfoChild.ShowWindow(SW_HIDE);
}
if(m_ModifyInfoChild.m_hWnd)
{
m_ModifyInfoChild.ShowWindow(SW_SHOW);
}
问题是IDD_MODIFYINFO这个窗口中不能相应任何事件,如初始化时间,单击按钮事件等

请问,什么原因?应该如何解决呢?
...全文
243 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
samuellei 2007-06-23
  • 打赏
  • 举报
回复
与模态对话框和消息框的消息不同,非模态对话框的消息要经过程序式的消息队列。要将这些消息传送给对话框窗口消息处理程序,则必须改变消息队列。方法如下:当您使用CreateDialog建立非模态对话框时,应该将从呼叫中传回的对话框句柄储存在一个整体变量(如hDlgModeless)中,并将消息循环改变为:

while (GetMessage (&msg, NULL, 0, 0))

{

if (hDlgModeless == 0 || !IsDialogMessage (hDlgModeless, &msg))

{

TranslateMessage (&msg) ;

DispatchMessage (&msg) ;

}

}

samuellei 2007-06-23
  • 打赏
  • 举报
回复
m_ModifyInfoChild.Create(IDD_MODIFYINFO,this);
你创建的是非模态对话框!!!!
quiton 2007-06-23
  • 打赏
  • 举报
回复
现在是窗口隐藏和显示,如何关闭呢?比如打开另外一个子窗口的时候,其他窗口关闭!

4,011

社区成员

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

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