子窗口最小化时无法在任务栏上显示

d98531 2013-01-01 12:04:56
一个工程有两个窗口,一个主窗口(A)和一个子窗口(B),点击A的最小化按钮可以正常地最小化,但是点击B的最小化按钮只能最小化到屏幕左下角。我希望实现B也可以最小化到任务栏上。

已知http://bbs.csdn.net/topics/3556此贴中的办法无效。

求解决办法,谢谢!
...全文
1129 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
银点 2013-01-04
  • 打赏
  • 举报
回复
引用 6 楼 d98531 的回复:
引用 3 楼 silverpot 的回复:1、干脆取消子窗口的最小化 2、拦截子窗口的WM_SYSCOMMAND消息。然后SendMessage给主窗口.wParam = SC_MINIMIZE 请问用VCL怎么做到这样?
1、重载子窗口的WindowProc函数 2、在WindowProc里只处理WM_SYSCOMMAND 即只要收到WM_SYSCOMMAND 并且 wParam = SC_MINIMIZE时,直接向主窗口SendMessage(主窗口句柄,WM_SYSCOMMAND ,SC_MINIMIZE,0)然后直接返回 3、其它消息直接Dispatch
hyz_cs 2013-01-02
  • 打赏
  • 举报
回复
子窗口中... .h

private:
        void __fastcall CreateParams(TCreateParams & Params);  
.cpp

void __fastcall TForm2::CreateParams(TCreateParams & Params)
  {   
     TForm::CreateParams(Params);
     Params.ExStyle   |=   WS_EX_APPWINDOW;
     Params.WndParent   =   GetDesktopWindow();
  }

d98531 2013-01-02
  • 打赏
  • 举报
回复
引用 3 楼 silverpot 的回复:
1、干脆取消子窗口的最小化 2、拦截子窗口的WM_SYSCOMMAND消息。然后SendMessage给主窗口.wParam = SC_MINIMIZE
请问用VCL怎么做到这样?
d98531 2013-01-02
  • 打赏
  • 举报
回复
引用 2 楼 CppFile 的回复:
外部调用吧,为什么一定要这样呢?
要是有很多窗口怎么办?
d98531 2013-01-02
  • 打赏
  • 举报
回复
引用 1 楼 ksrsoft 的回复:
不要设成mdi子窗体试试
没有设成MDI子窗体呀
银点 2013-01-02
  • 打赏
  • 举报
回复
1、干脆取消子窗口的最小化 2、拦截子窗口的WM_SYSCOMMAND消息。然后SendMessage给主窗口.wParam = SC_MINIMIZE
「已注销」 2013-01-02
  • 打赏
  • 举报
回复
Form1(主窗口)需要 ShowWindow(Application->Handle,SW_HIDE); Form2(子窗口)需要 ParentWindow=GetDesktopWindow(); 但是这样会使得Form2上的组件失效,需要实现保存Form2->ParentWindow,以备还原。
CppFile 2013-01-01
  • 打赏
  • 举报
回复
外部调用吧,为什么一定要这样呢?
缘中人 2013-01-01
  • 打赏
  • 举报
回复
不要设成mdi子窗体试试
TMenuItem显示在右侧 不使用MDI制作窗体 不使用标题栏移动窗体 不使用标题栏移动窗口 两行hint 从XML文件动态创建菜单 从另外MDI窗口读数据 使控件具有阴影效果 使每个MDIChild填充整个主窗口区域 使用Enter键替代Tab键 使用动画效果关闭窗口 使用动画方式打开窗体 使用帮助文件 使用状态栏显示hint 使用系统图标 使窗体不能移动 关闭一个MDI窗体 创建一个能改变大小的无边界窗体 创建半透明窗体 创建圆角窗体 创建透明窗体 判断窗体是modal 制作动画应用程序图标 制作可移动不能改变大小的窗体 制作永远最小化窗口 制作透明窗口 取和设置鼠标位置 取鼠标指针下面的活动TWinControl 启动隐藏主窗口 在 window xp 使用阴影效果 在TCombobox内显示多行文本 在TScrollBox上显示窗体 在你的程序中使用 Win XP 可视风格 在窗体上制造多边形洞 在窗体上挖洞 在窗体周围画彩色轮廓 定位messagebox 实现窗口最小化动画效果 将InputQuery定位在窗体居中位置 怪异窗体 手动改变窗体比例 抓屏 拖拽显示窗口内容 捕获主窗体WM_MOVE消息 改变Hint字体 改变Hint的显示间 改变MessageDlg的按钮标题 最小化控件 最小化第二个窗口任务栏 查找窗体注册类 格式化MessageDlg 检查PopUp菜单是否打开 检查控件是否被其它窗口遮掩 添加菜单项到系统菜单 渐变色填充窗体 特效窗口 移动指针到当前具有焦点的控件 移除系统菜单项 自动关闭TCommonDialog 运行改变MainForm 运行移动控件 运行移动窗口控件 选中或取消其它窗口的复选框 通过在标题栏上右击缩小窗口 防止 Windows 最小化窗体 防止控件重画 防止窗体改变大小和移动 隐藏标题栏 隐藏窗体的最大化和最小化按钮

604

社区成员

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

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