创建XWindow全屏窗口
来源:互联网 发布:c 并发编程 pdf 编辑:程序博客网 时间:2024/06/05 19:36
在XWindow环境中创建一个全屏窗口有两个关键点,第一窗口左上角在(0, 0)并且和所在Screen等宽等高,第二,该窗口不需要窗口管理器的管理,即设置override_redirect属性为True;下面是一个例子:
#include <stdio.h>
#include <X11/Xlib.h>
int main()
{
Display *dpy;
int screen;
int blackColor, whiteColor;
Window win;
unsigned long winmask;
XSetWindowAttributes winattrs;
XEvent xevt;
int posx, posy, width, height;
dpy = XOpenDisplay(NULL);
screen = DefaultScreen(dpy);
blackColor = BlackPixel(dpy, DefaultScreen(dpy));
whiteColor = WhitePixel(dpy, DefaultScreen(dpy));
posx = posy = 0;
width = DisplayWidth(dpy, screen); /* 获取屏幕宽度 */
height = DisplayHeight(dpy, screen); /* 获取屏幕高度 */
win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), posx, posy,
width, height, 0, blackColor, blackColor);
winattrs.override_redirect = True;
winmask = CWOverrideRedirect; /* 指定只对override_redirect属性做改变 */
XChangeWindowAttributes(dpy, win, winmask, &winattrs);
// We want to get MapNotify events
XSelectInput(dpy, win, StructureNotifyMask | ExposureMask);
XMapWindow(dpy, win);
while(1) {
XNextEvent(dpy, &xevt);
switch (xevt.type)
{
case Expose:
break;
default:
break;
}
}
return 0;
}
需要注意的是,由于窗口管理器的不同,该全屏窗口不一定能脱离窗口管理器的约束,但是大多数情况下该代码是有效的,窗口全屏化后,Alt-Tab等窗口切换动作无效。
此外,如果通过改变override_redirect属性为False并且将窗口大小改变得小于屏幕大小,得到的是没有框架的窗口,窗口框架在全屏化时被取消了。
- 创建XWindow全屏窗口
- 创建XWindow全屏窗口
- 创建XWindow全屏窗口(Linux可视化编程)
- 创建一个全屏的窗口
- 窗口模式与全屏模式切换,创建全屏窗口
- 用MFC怎么创建一个全屏窗口
- windows编程 全屏窗口的创建总结
- MFC创建一个全屏窗口(附源码)
- OpenGL 使用GLFW创建全屏窗口
- 窗口全屏
- 全屏窗口
- 全屏窗口
- 全屏窗口
- 全屏窗口
- 窗口全屏
- xwindow
- Xwindow
- xwindow
- VC++中的MFC程序的执行过程
- 1021. Couples
- 安全数据托管是云计算发展的关键瓶颈与阻碍
- sql server 2005 windows验证方式不能登录的解决办法
- MySQL中表字段结构和行字段结构学习
- 创建XWindow全屏窗口
- lucene应用心得以及几种中文分词器的使用比对
- .net中相关有用的正则表达式
- Can Your Programming Language Do This?
- 用于图片处理的10个超级jQuery插件
- 从B 树、B+ 树、B* 树谈到R 树
- 关于mysql的一些安全细节问题
- entity 执行存储过程!
- Android电子书和platforms下载【【【115网盘】】】