新手请教C++对话框的问题

2025-12-15 14:44:14
推荐回答(5个)
回答1:

两种方法:
1、旧窗口的创建打开和新窗口的创建打开写在一个函数中(旧窗口不直接打开新窗口,而是利用DoModal的返回值来判断是否打开新窗口,比方说IDOK表示登录成功打开新窗口,IDCANCEL表示关闭登录窗口),然后在App的InitInstance中调用这个函数。这样旧窗口关闭后自然就打开了新窗口。

2、新窗口的OnInitDialog中向旧窗口发送一个关闭消息,旧窗口收到消息后就关闭自己。但是记得要把新窗口的对象作为全局对象。

回答2:

在原对话框类PostNcD???()函数里面加上Delete this;再在打开新对话框构造或初始化函数里面发关闭原对话框的消息SentMessage(句柄,WN_CLOSE);抱歉!我用手机不方便答题,望谅!

回答3:

不能说是关闭,只是将老窗口隐藏了。
你可以在新窗口弹出时,加上这么一句话
ShowWindow(hWnd, SW_HIDE);

如果你想显示原有的窗口可以加入
ShowWindow(hWnd, SW_SHOW);

hWnd为你需要操作的窗口的句柄

回答4:

这样的表面效果可以多种实现,发消息让主线程处理打开关闭也可以

回答5:

新窗口的创建显示后,写一句 firstdlg.SendMessage(WM_DESTROY,0L,0L);