gpt4 book ai didi

c# - 你如何检查一个窗口是否在 Gtk 中最大化?

转载 作者:太空宇宙 更新时间:2023-11-04 03:04:20 25 4
gpt4 key购买 nike

我想给一个窗口一个特定的属性只有当它被最大化时并且当最大化状态结束时将它改回来。我正在使用 Gtk# ,但欢迎所有 GTK 绑定(bind)答案。我正在寻找的是这样的东西(伪代码):

 OnMaximise += new Mhandler();
Mhandler(){ property = true;}

或者:

Resize += delegate() {
if (isMaximised()) property=true; else property = false;};

或者 C 方式:

gtk_window_on_maximise(GTK_WINDOW(mwin),onmax);
void onmax()
{
if (gtk_window_is_max(GTK_WINDOW(mwin))
gtk_window_set_property(GTK_WINDOW(mwin),true);
else gtk_window_set_property(GTK_WINDOW(mwin),false);
}

有什么建议吗?谢谢

最佳答案

在创建窗口时设置“窗口状态事件”信号并监视它。参见 http://developer.gnome.org/gtk/2.24/GtkWindow.html#gtk-window-maximize并且 http://developer.gnome.org/gtk/2.24/GtkWidget.html#GtkWidget-window-state-event

您的 onmax() 将是当 GDK_WINDOW_STATE_MAXIMIZED 变为 TRUE 时调用的处理程序。参见 http://developer.gnome.org/gdk/stable/gdk-Events.html#GDK-STRUCTURE-MASK:CAPShttp://developer.gnome.org/gdk/stable/gdk-Event-Structures.html#GdkEventWindowStatehttp://developer.gnome.org/gdk/stable/gdk-Event-Structures.html#GdkWindowState

抱歉,如果不实际编写代码,除此之外别无他法。谷歌可能有一些很好的例子,但也可能没有。那里的文档实际上是为那些已经可以处理 GTK+ 信号的人准备的。

编辑:我用 C 编写 GTK+,我引用的页面是针对 C 的。

编辑 #2:每当发送信号时都会执行处理程序(回调),信号数据才是最重要的。我可能会对我感兴趣的每个信号数据值做一个 switch:case,并可能为其他函数设置一个标志以供稍后阅读。

关于c# - 你如何检查一个窗口是否在 Gtk 中最大化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7587902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com