Y
yb33
Unregistered / Unconfirmed
GUEST, unregistred user!
创建两个窗口,要求子窗口也能显示在任务栏中(不是右下角),可以在主窗口和子窗口之间切换。当前我是这样解决的
void __fastcall TForm1::CreateParams(TCreateParams &Params)
{
TForm::CreateParams(Params);
Params.ExStyle |= WS_EX_APPWINDOW;
Params.WndParent = GetDesktopWindow();
}
但是有个问题,如果我在Form1中打开OpenDialog或以ShowModal方式打开另外的窗体,则Form1就隐藏不见了,ShowMessage可以这样解决:
MessageBox(Handle,Msg,Caption,MB_YESNOCANCEL);
如果去掉 Params.WndParent = GetDesktopWindow();
就没有上面这个问题,但是又出新问题了。如果以ShowModal方式打开另外的窗体Form2,切换到别的窗体,再切换回来就看不见Form2,且Form1失去焦点。
我再把我想要的效果说清楚。举个例子,大家都常用MSN吧。
双击一个联系人就Show一个窗体,且标题出现在任务栏,可以点击这些标题在多个联系人间切换。
在每个联系人的窗体Form1上,点“邀请某人到对话”就ShowModal一个窗体Form2,Form2不在任务栏中出现标题。此时Form1显示在Form2的背后,如果切换到别的联系人窗体,再切换回来,Form2仍可见且显示在Form1的前面。
在每个联系人的窗体Form1上,点“发送文件或照片”,显示一个OpenDialog,这个OpenDialog的显示效果同上面的Form2.
我摸索了好久,查了好多地方,还是没解决。哪位老兄知道如何解决这个问题?请指教。
void __fastcall TForm1::CreateParams(TCreateParams &Params)
{
TForm::CreateParams(Params);
Params.ExStyle |= WS_EX_APPWINDOW;
Params.WndParent = GetDesktopWindow();
}
但是有个问题,如果我在Form1中打开OpenDialog或以ShowModal方式打开另外的窗体,则Form1就隐藏不见了,ShowMessage可以这样解决:
MessageBox(Handle,Msg,Caption,MB_YESNOCANCEL);
如果去掉 Params.WndParent = GetDesktopWindow();
就没有上面这个问题,但是又出新问题了。如果以ShowModal方式打开另外的窗体Form2,切换到别的窗体,再切换回来就看不见Form2,且Form1失去焦点。
我再把我想要的效果说清楚。举个例子,大家都常用MSN吧。
双击一个联系人就Show一个窗体,且标题出现在任务栏,可以点击这些标题在多个联系人间切换。
在每个联系人的窗体Form1上,点“邀请某人到对话”就ShowModal一个窗体Form2,Form2不在任务栏中出现标题。此时Form1显示在Form2的背后,如果切换到别的联系人窗体,再切换回来,Form2仍可见且显示在Form1的前面。
在每个联系人的窗体Form1上,点“发送文件或照片”,显示一个OpenDialog,这个OpenDialog的显示效果同上面的Form2.
我摸索了好久,查了好多地方,还是没解决。哪位老兄知道如何解决这个问题?请指教。