您的位置:首页 > 其它

使用GTK+获取屏幕分辨率并设置满屏显示效果

2016-07-01 16:57 585 查看
在linux下,经常需要设置程序全屏显示,GTK+中提供了获取屏幕分辨率的方式,然后只要根据得到的宽高设置窗口显示大小,同时使用gtk_window_set_decorated去掉边框和标题栏显示,就能实现相应的效果了。下面程序,就是简单的给出了窗口满屏效果是如何实现的,为保证程序的正常退出,添加了键盘事件,按下Esc键,程序退出。
/*
* Name: full_screen.c
*/
#include
<gtk/gtk.h>

#include
<gdk/gdk.h>

#include
<gdk/gdkkeysyms.h>
/* the key value defines can be found here */
#include
<stdio.h>

static void

on_key_press(GtkWidget
*widget, GdkEventKey
*event, gpointer user_data)

{

switch(event->keyval)

{

case GDK_Escape:

gtk_main_quit();

break;

default:

break;

}

}

int main(int argc,
char *argv[])

{

gtk_init(&argc,
&argv);
    /* Get the Screen Resolution*/GdkScreen* screen;gint width, height;screen = gdk_screen_get_default();width = gdk_screen_get_width(screen);height = gdk_screen_get_height(screen);printf("screen width: %d, height: %d\n", width, height);/* Create window and set full screen*/GtkWidget *window;window = gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);gtk_window_set_default_size(GTK_WINDOW(window), width,
height);gtk_window_set_decorated(GTK_WINDOW(window),
FALSE); /* hide the title bar and the boder*/gtk_widget_show (window);
    /* add key event for quit*/g_signal_connect(G_OBJECT(window), \"key-press-event", \G_CALLBACK(on_key_press),
NULL);gtk_main();return 0;}
编译执行程序
$ gcc -g `pkg-config --cflags --libs gtk+-2.0` -o full_screen full_screen.c$ ./full_screen

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: