GTKÖд°¿ÚµÄ×î´ó»¯,×îС»¯ÐźŵIJ¶×½
[CODE]#include <stdio.h>
#include <gtk/gtk.h>
void callback(gpointer data)
{
GtkWidget *window=GTK_WIDGET(data);
switch(gdk_window_get_state(GDK_WINDOW(window->window)))
{
case 1<<0/* GDK_WINDOW_STATE_WITHDRAWN*/: printf("GDK_WINDOW_STATE_WITHDRAWN:the window is not shown.\n");break;
case 1<<1/* GDK_WINDOW_STATE_ICONIFIED*/: printf("GDK_WINDOW_STATE_ICONIFIED:the window is minimized.\n");break;
case 1<<2/* GDK_WINDOW_STATE_MAXIMIZED*/: printf("GDK_WINDOW_STATE_MAXIMIZED:the window is maximized.\n");break;
case 1<<3/* GDK_WINDOW_STATE_STICKY*/: printf("GDK_WINDOW_STATE_STICKY:the window is sticky.\n");break;
case 1<<4/* GDK_WINDOW_STATE_FULLSCREEN*/: printf("GDK_WINDOW_STATE_FULLSCREEN:the window is maximized without decorations.\n");break;
case 1<<5/* GDK_WINDOW_STATE_ABOVE*/: printf("GDK_WINDOW_STATE_ABOVE:the window is kept above other windows. \n");break;
case 1<<6/* GDK_WINDOW_STATE_BELOW*/: printf("GDK_WINDOW_STATE_BELOW:the window is kept below other windows. \n");break;
default:break;
}
}
int main(int argc,char *argv[])
{
gtk_init(&argc,&argv);
GtkWidget *window;
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
g_signal_connect_swapped(window,"window_state_event",
[center]G_CALLBACK(callback),window);[/center]
gtk_main();
return 1;
}[/CODE] ¾µä¾µä,¿ÉÒÔ×Ô¼ºÐ´ÁË
ÔÚgtkÖÐÓ¦ÓÃgladeÉè¼Æ½çÃæ
¸÷λǰ±²£¬ÎÒÔÚgtkÖÐÓ¦ÓÃgladeÉè¼Æ½çÃæ£¬µ«ÊÇÓÐÒÔϼ¸·½ÃæµÄÎÊÌâ¡£1£¬Èç¹ûÏëÔÚ²»Í¬µÄwindow½çÃæÖ®¼ä½øÐÐÇл»£¬ÈçºÎÔÚ½øÈëµÚ¶þ¸ö½çÃæÊ±Í˳öÉÏÒ»¸ö½çÃæ¡£
2£¬¿É²»¿ÉÒÔÉèÖÃÒ»¸öÖ÷½çÃæ£¨Ò»°ã»áÓй«Óõİ´Å¥²Ëµ¥£©£¬ÈÃÆäËû½çÃæ¸½×ÅÔÚÖ÷½çÃæÉÏ£¿Èç¹û¿ÉÒÔÓÐÖ÷½çÃæ£¬Ò»°ãÓÃʲô¹¹¼þ£¿
3£¬Èç¹ûʹÓÃnotebookʱ£¬Èç¹ûÓð´Å¥È¥ÊµÏÖÔ±¾ÀûÓÃlabel½øÐеÄÇл»¸÷¸ö½çÃæ¡£
4£¬ÎªÊ²Ã´ÎÒÊÔͼ½øÐÐÇл»Ê±×ÜÊdzÌÐò»áÍ˳ö£¿
Ï£Íû¸÷λǰ±²²»Áߴͽ̣¡¶àл£¡
Ò³:
[1]