如何实现像QQ那样,在任务栏多个窗口

xiaowei_001 2011-05-05 06:37:31
最近在做个聊天工具,发现点问题,请教大伙,
用这个
procedure TfrmChat.CreateParams(var Params:TCreateParams);
begin
inherited;
Params.WndParent := GetDesktopWindow; //0
end;


可以多个窗口在任务栏,可有个问题,时不时的主窗体会显示在聊天窗口的前面,试了好多方法都没有效!求教!

...全文
220 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
不得闲 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 xiaowei_001 的回复:]
最近在做个聊天工具,发现点问题,请教大伙,
用这个
procedure TfrmChat.CreateParams(var Params:TCreateParams);
begin
inherited;
Params.WndParent := GetDesktopWindow; //0
end;


可以多个窗口在任务栏,可有个问题,时不时的主窗体会显示在聊天窗口的前面,……
[/Quote]
你这个创建的OnCreate过程中加上一个设置
SetWindowLong(Handle,GWL_HWNDPARENT,Application.MainForm.Handle);
这样窗体就会始终在主窗体前面
xiaowei_001 2011-05-05
  • 打赏
  • 举报
回复
dll窗体应该是可以的,不过相互间交付有点繁琐,期待有更好的办法?
窗体创建的时候,这样创建不知行不行
frmxx = Tfrmxx.Create(nil);
浩南_哥 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sailxia 的回复:]

用 DLL 窗体试一试?
[/Quote]
这个可以,在任务栏绝对是多个图标,不过貌似不能用show显示
Frank.WU 2011-05-05
  • 打赏
  • 举报
回复
用 DLL 窗体试一试?
oloveuxyz 2011-05-05
  • 打赏
  • 举报
回复
我目前的解决方法是这样的
刚好把业务逻辑写到这个空白窗体里面
作为一个逻辑和UI的交接部分

期待有更好的解决这个焦点问题的方法
oloveuxyz 2011-05-05
  • 打赏
  • 举报
回复
这个是因为窗体焦点问题
建议你弄一个隐藏的窗体作为主窗体

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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