Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1462624
  • 博文数量: 596
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 173
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-06 15:50
个人简介

在线笔记

文章分类

全部博文(596)

文章存档

2016年(1)

2015年(104)

2014年(228)

2013年(226)

2012年(26)

2011年(11)

分类: C/C++

2013-10-10 16:40:57

在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

阅读(1000) | 评论(0) | 转发(0) |
0

上一篇:调试总结

下一篇:ATP-GET常用操作

给主人留下些什么吧!~~