点击子窗口时如何使父窗口总是处于被激活的显示状态

来源:百度知道 编辑:UC知道 时间:2024/05/05 01:09:39
现在发现点击子窗口后子窗口被激活,标题栏变成深蓝色,但是父窗口就处于未激活状态,标题栏为浅灰蓝色,我现在想让父窗口始终为那种深蓝色标题栏状态应该怎么做?
谢谢。不过我是用的对话框类的派生类实现的父窗口和多个子窗口的效果,应该怎么做呢?

=======================

谢谢回答,不过我想两位理解错了,我已经创建非模态对话框了,是想让非模态对话框的父窗口始终处于被激活的状态,就是标题栏始终为深蓝色而不是灰蓝色那种,应该怎么做呢
=================================
::ShowWindow(oldHWnd,SW_SHOWNORMAL);
::SetForegroundWindow(oldHWnd);
这种方法只能让一个窗口处于被激活状态,我想得到的结果是父窗口和子窗口都处于被激活状态应该怎么做呢?

按照你说的这种情况来看

应该是 MDI 程序
窗口创建有错误,MDI 程序 点击子窗口后,程序激活,父窗口肯定是处于激活状态

检查以下窗口创建的部分吧

SDK 创建MDI窗口

http://www.vckbase.com/document/viewdoc/?id=1022

对话框就要用非模式对话框了

建立对话框类 用create创建对话框。不能使用DoModel
详细用法查查baidu或者msdn吧 实现很简单 然后调整下对话框样式就可以了

创建非模式对话框。

C**Dialog dlg;//在类中定义成员变量。

dlg.Create(对话框ID);
dlg.ShowWindow(TRUE);
dlg.UpdateData();

在点击子窗口时,先获得你想激活的窗口的句柄,再用
::ShowWindow(oldHWnd,SW_SHOWNORMAL);
::SetForegroundWindow(oldHWnd);
就可以了