从GtkWidget获取X11窗口句柄

use*_*947 7 c++ linux gtk wxwidgets window-handles

wxWindow的:: GetHandle()函数返回HWND在Windows和GtkWidget的Linux操作系统.我需要获得X11 Window Handle,这不是小部件本身.如何从该窗口小部件获取句柄?我需要C++代码,因为它是wxWidgets的主要语言.

rod*_*igo 14

就像是:

GtkWidget *widget = ...;
Window w = gdk_x11_drawable_get_xid(gtk_widget_get_window(widget));
Run Code Online (Sandbox Code Playgroud)

它是C,因为Gtk +是一个C API,但它也是C++,所以应该没有问题.

别忘了#include <gdk/gdkx.h>!

  • `Window`是本机XWindows窗口的类型.它被定义为`typedef XID Window;`,而XID本身就是一个标识大多数X资源的整数类型(参见`/ usr/include/X11/Xh`). (3认同)
  • @Noitidart在Gtk3中有等效的`gdk_x11_window_get_xid()`. (2认同)