使任意小部件在 X 上的 GTK 中显示为顶级窗口



在Windows中,可以说

CreateWindow("myclass",...,WS_CHILD,...);

CreateWindow("myclass",...,WS_OVERLAPPEDWINDOW,...);

也可以随意切换外观:

SetWindowLongPtr((HWND)handle,GWL_STYLE,style_1);
SetWindowPos((HWND)handle,HWND_TOP,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER |   SWP_FRAMECHANGED);
SetWindowLongPtr((HWND)handle,GWL_EXSTYLE,style_0);
SetWindowPos((HWND)handle,HWND_TOP,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
if(style_1&WS_CHILD)
    {
    HWND owner=GetWindow((HWND)handle,GW_OWNER);
    SetParent((HWND)handle,owner);
    }
else
    {SetParent((HWND)handle,NULL);}

在我看来,大多数其他 GUI 工具包都明确区分了顶级窗口和其他小部件。问题是是否以及如何在 X 上的 GTK 中实现类似的行为

有一个GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUP - 除非你知道你使用第一个做什么。还有RTM https://developer.gnome.org/gtk3/stable/gtk3-Standard-Enumerations.html#GtkWindowType


您需要创建一个GtkWindowGtkMainWindow,然后通过gtk_container_add将所需的小部件x添加到您创建的窗口中。

相关内容

  • 没有找到相关文章

最新更新