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

来源:百度知道 编辑:UC知道 时间:2024/05/18 04:27:22
谁知道C++如何在一个窗口上弹出一个新窗口后,能自动将原来的老窗口关闭?而不要用户点击确定才关闭原来的窗口?就像QQ登录时一样

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

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

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

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

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

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

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

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

VSC++ 还是VC++??