没有标题栏的简单窗口
simple window without titlebar
大家下午好!我一直在一个项目,需要一个基本的窗口没有标题栏。在网上浏览了一下之后,我看到了这篇帖子,创建了一个没有标题栏的窗口,回复提到了使用"_NET_WM_WINDOW_TYPE_DOCK"原子。我尝试使用以下代码在我的项目中创建一个:
Display* d = fl_display;
XWindow w = XCreateSimpleWindow(d, RootWindow(d, fl_screen),
0, 0,
400, 100,
0,
0x000000, 0x000000);
Atom window_type = XInternAtom(d, "_NET_WM_WINDOW_TYPE", False);
long value = XInternAtom(d, "_NET_WM_WINDOW_TYPE_DOCK", False);
XChangeProperty(d, w, window_type, XA_ATOM, 32, PropModeReplace, (uchar*) &value, 1);
窗口显示,但它仍然有一个标题栏。我在网上找到了一些其他的资源,但是我不能停止显示标题栏。我确实意识到,引用的帖子是使用XCreateWindow,但不应该原子工作在XCreateSimpleWindow太。任何帮助将不胜感激!
谢谢
我对您的示例进行了一些扩展,以便能够对其进行测试,并且它对我有效-看看您的代码是否有任何有意义的差异。
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
int main(int argc, char **argv) {
Display* d = XOpenDisplay(NULL);
int s = DefaultScreen(d);
Window w = XCreateSimpleWindow(d, RootWindow(d, s), 100, 100, 400, 100, 1,
BlackPixel(d, s), WhitePixel(d, s));
Atom window_type = XInternAtom(d, "_NET_WM_WINDOW_TYPE", False);
long value = XInternAtom(d, "_NET_WM_WINDOW_TYPE_DOCK", False);
XEvent e;
XChangeProperty(d, w, window_type, XA_ATOM, 32, PropModeReplace, (unsigned char *) &value, 1);
XMapWindow(d, w);
while (1) {
XNextEvent(d, &e);
if (e.type == Expose) {
XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10);
}
if (e.type == KeyPress)
break;
}
XCloseDisplay(d);
return 0;
}
相关文章:
- 在c++中用vector填充一个简单的动态数组
- (C++)分析树以计算返回错误值的简单算术表达式
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 问:如何使用C++中的按钮从窗口打开窗口
- 我的简单if-else语句是如何无法访问的代码
- 使用简单类型列表实现的指数编译时间.为什么
- SDL 窗口不会弹出
- OpenGL C++(制作简单窗口时抛出错误)
- 用c++和OpenGL创建一个带有简单控件的简单窗口
- 我用c编写了一些代码来制作简单的win32窗口,但失败了
- 在窗口中的屏幕上获取坐标像素数据的简单方法
- 简单窗口WinAPI面向对象
- 创建一个简单的窗口来输出用于调试的信息(日志样式)- wxWidgets
- 调整我简单的OpenGL/GLUT窗口的大小会产生奇怪的线条
- 简单的WinAPI应用程序有一个额外的控制台窗口
- 如何在没有Win32 API的情况下制作一个简单的窗口
- 是否有一种简单的方法可以用可互操作的代码在CLI中清理屏幕/保持输出窗口,避免conio.h和ncurses.h
- 简单opencvc++程序CodeBlock窗口错误
- 仅允许垂直窗口大小调整的最简单方法是什么?
- 没有标题栏的简单窗口