一口气写上了这么长的一个标题,估计吓到不少人。这个问题并不常见,也不是一个很大很严重的问题。但是确实存在,并且gtk的文档里没有说清楚。这导致了我走了一些弯路。好了,进入正题。
我们通过gtk_window_new新建一个GtkWindow后,一般情况下(不经过我们的特殊处理),当把这个窗口显示出来时,就会在任务栏中显示窗口的图标。但是有些时候我们不想要这个图标,比如,菜单窗口,是不应该有这个图标的。
GtkWindow中提供了gtk_window_set_skip_taskbar这个函数,并且有这样的说明:"Windows may set a hint asking the desktop environment not to display the window in the task bar. This function sets this hint.”这不正是我们要的吗?!很遗憾,在Linux上是可以的,但是在Windows上就不行了。
可以通过下面的代码进行验证:
#include
static gboolean flag = TRUE;
gboolean destroy(GtkWidget *widget, gpointer data)
{
gtk_main_quit();
}
gboolean clicked(GtkButton *button, gpointer data)
{
GtkWidget *window = (GtkWidget *)data;
g_print("skip taskbar:%d./n",
gtk_window_get_skip_taskbar_hint(GTK_WINDOW(window)));
if(flag)
gtk_widget_hide_all(window);
else
gtk_widget_show_all(window);
flag = !flag;
return FALSE;
}
int main(int argc,char ** argv )
{
gtk_init(&argc,&argv);
GtkWidget *windo