栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Xlib如何在启动画面中绘制字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Xlib如何在启动画面中绘制字符串

我不太确定为什么XFlush不起作用,但这是事件循环和冲洗的混合体。它等待暴露事件,绘制字符串并退出循环。

5秒钟后,它将取消映射窗口,然后5秒钟后退出。

#include <X11/Xlib.h>#include <X11/Xatom.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>int main(void){    Display *d;    Window w;    XEvent e;    const char *msg = "Hello, World!";    int s;    bool done = false;        d = XOpenDisplay(NULL);    if (d == NULL)    {        fprintf(stderr, "Cannot open displayn");        exit(1);    }    s = DefaultScreen(d);        w = XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 480, 320, 0,BlackPixel(d, s), WhitePixel(d, s));    Atom type = XInternAtom(d,"_NET_WM_WINDOW_TYPE", False);    Atom value = XInternAtom(d,"_NET_WM_WINDOW_TYPE_SPLASH", False);    XChangeProperty(d, w, type, XA_ATOM, 32, PropModeReplace, reinterpret_cast<unsigned char*>(&value), 1);        Atom wmDeleteMessage = XInternAtom(d, "WM_DELETE_WINDOW", False);    XSetWMProtocols(d, w, &wmDeleteMessage, 1);        XSelectInput(d, w, ExposureMask);        XMapWindow(d, w);        while (!done)    {        XNextEvent(d, &e);                if (e.type == Expose)        { XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg)); done = true;        }    }    XFlush(d);    sleep(5);    XUnmapWindow(d,w);    XFlush(d);    printf("unmappedn");    sleep(5);        XCloseDisplay(d);    return 0;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412562.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号