Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从GtkWidget获取X11窗口句柄_C++_Linux_Gtk_Wxwidgets_Window Handles - Fatal编程技术网

C++ 从GtkWidget获取X11窗口句柄

C++ 从GtkWidget获取X11窗口句柄,c++,linux,gtk,wxwidgets,window-handles,C++,Linux,Gtk,Wxwidgets,Window Handles,该函数在Windows上返回HWND,在linux上返回GtkWidget。我需要得到X11窗口句柄,它不是小部件本身。如何从该小部件获取句柄?我需要C++代码,因为它是WxWiWDGES的主要语言。 < P> GtkWidget *widget = ...; Window w = gdk_x11_drawable_get_xid(gtk_widget_get_window(widget)); 是C,因为GTK+是一个C API,但也是C++,所以应该没有问题。 别忘了把#包括在内

该函数在Windows上返回HWND,在linux上返回GtkWidget。我需要得到X11窗口句柄,它不是小部件本身。如何从该小部件获取句柄?我需要C++代码,因为它是WxWiWDGES的主要语言。

< P>
GtkWidget *widget = ...;
Window w = gdk_x11_drawable_get_xid(gtk_widget_get_window(widget));

是C,因为GTK+是一个C API,但也是C++,所以应该没有问题。


别忘了把#包括在内Window是本机XWindows窗口的类型。定义为
typedef XID窗口,而XID本身是一个完整的类型,用于标识大多数X资源(请参见
/usr/include/X11/X.h
)。谢谢。如果我包含wxwidgets和gdk/gdkx.h,编译器会知道这种类型吗?是的,
已经包含了它需要的任何X11头。另一个问题是您是否必须包含任何Gtk头,例如Gtk3中的
@Noitidart有等效的
gdk\u x11\u window\u get\u xid()