c - 使用主应用程序窗口使拥有的窗口最小化

标签 c windows gtk

在我的应用程序中,主窗口会生成多个对话框,通常会同时打开多个对话框。在 Ubuntu 上,如果我最小化主窗口,每个子对话框也会最小化。在 Windows XP/Vista/7 上,对话框不会随主窗口最小化。

在 Windows 上,有没有办法在主应用程序最小化时使所有顶级窗口最小化。

编辑: 通过为“窗口状态事件”设置信号并手动使用 gtk_window_iconify 来解决。

设置信号:

g_signal_connect(G_OBJECT(Main_Application),  "window-state-event", G_CALLBACK(minimize_windows), NULL);

这是最小化窗口函数。

gboolean minimize_windows( GtkWidget *widget, GdkEventWindowState *event, gpointer user_data)
{
  GList *glist;
  /*Returns a GList of each toplevel window*/
  glist = gtk_window_list_toplevels();  

  /*Iconify check*/
  if(event->new_window_state & GDK_WINDOW_STATE_ICONIFIED)
      g_list_foreach(glist, (GFunc)gtk_window_iconify,NULL);
  /* If not make sure all the windows are deiconified */
  else
      g_list_foreach(glist, (GFunc)gtk_window_deiconify, NULL);

  g_list_free(glist);

  return TRUE;
}

最佳答案

尝试使父表单成为子表单的所有者:

Form2 f2 = new Form2();
f2.Show(this);

关于c - 使用主应用程序窗口使拥有的窗口最小化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11367164/

相关文章:

c - 我无法在 c 中将一个结构分配给另一个结构

c - 结合指针解引用运算符正确使用预增量运算符

从位图和透明度颜色创建蒙版 - Windows GDI

Windows 上的 Python 多处理和网络

c# - 哪些 Windows GUI 开发工具最适合学习/掌握?建议/原因

c - 从c中的标准输入读取十六进制

c - 序言功能的差异

c++ - 如何扫描另一个进程内存以查找特定字符串后面的内容?

c - 在简单的 GTK+ 应用程序中启用优化时出现段错误?

c - 如何修复传递给 pango_layout_set_text() 的无效 UTF-8 字符串