📄 1.cpp
字号:
#include <X11/Xlib.h> #include <X11/Xutil.h> #include <X11/Xos.h> #include <X11/Xatom.h> #define DUMP_ERR printf int main() { Display *display; int screennum; int width; int height; const char *strdraw = “hello world”; Window win; GC gc; //打开显示 没有指明打开哪个显示时使用环境变量中的DESPLAY display = XOpenDisplay(NULL); if( !display ){ DUMP_ERR(”call XOpenDisplay(%s) fail\n”,XDisplayName(NULL)); return 1; } //得到系统当前的屏幕 (如果使用虚拟屏幕的话 一般会有几个) // get default screen screennum = DefaultScreen(display); //根据屏幕的大小决定窗口的大小 width = DisplayWidth(display,screennum)/4; height = DisplayHeight(display,screennum)/4; //创建窗口 // create window win = XCreateSimpleWindow(display, RootWindow(display,screennum), 0,0,width,height,3, BlackPixel(display,screennum), WhitePixel(display,screennum)); //选择窗口关心的事件 // select event XSelectInput(display,win, ExposureMask|KeyPressMask |ButtonPressMask|StructureNotifyMask); //创建GC(图形上下文) // create gc { unsigned long valuemask = 0; XGCValues values; gc = XCreateGC(display,win,valuemask,&values); } // 映射窗口 只有map后窗口才会在屏幕上显示 // show window XMapWindow(display,win); //进入事件循环 // event loop while(1){ XEvent event; XNextEvent(display,&event); // 读一个事件 switch(event.type){ case Expose: // expose window 显示事件 if( event.xexpose.count != 0) break; XDrawString(display,win,gc,10,10, strdraw,strlen(strdraw)); break; // 按键事件 case ButtonPress: case KeyPress: XFreeGC(display,gc); XCloseWindow(win); XCloseDisplay(display); return 0; default: break; } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -