创建XWindow全屏窗口
来源:互联网 发布:在线下单系统源码 编辑:程序博客网 时间:2024/05/22 16:46
在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
- CODEFORCE #405 div1 a
- tomcat启动加载web项目内存溢出
- C# 高级编程 chapter1
- PHP安全编程
- 吴恩达 机器学习第二周 logistic_regression 单层网络梯度下降法实现
- 创建XWindow全屏窗口
- 【Scikit-Learn 中文文档】四十三:使用 scikit-learn 介绍机器学习
- Apache实现反向代理和负载均衡
- 【工业智能】从人工智能到工业智能,和工业智能化转型的三个路径
- 剑指offer—反转链表
- Java中sleep()与wait()区别
- ArUco----一个微型现实增强库的介绍及视觉应用(一)
- NotificationManager 通知栏(自调用)
- 28 H5上rtl8189ftv wifi驱动移植