如何检查窗口是否在Gtk中最大化?

问题描述:

我想给一个窗口一个特定的属性只有当它被最大化时并在最大化状态结束时将其改回。我正在使用Gtk#,但所有GTK绑定答案都是受欢迎的。我所寻找的是这样的(伪):如何检查窗口是否在Gtk中最大化?

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); 
} 

有什么建议?谢谢

+0

@ Pedro77也许是因为我使用GTK#?我什么时候问C++? – ApprenticeHacker

当您创建窗口并观察窗口时,设置“窗口状态事件”信号。见http://developer.gnome.org/gtk/2.24/GtkWindow.html#gtk-window-maximizehttp://developer.gnome.org/gtk/2.24/GtkWidget.html#GtkWidget-window-state-event

你的最大制动持续()是当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 +信号的人来说,哪些文档是有用的。

编辑:我做的GTK + C和我所引用的网页是C.

编辑#2:处理器(回调)每当发送的信号,并将信号数据是最重要的是执行。我可能会对每个感兴趣的信号数据值做一次切换:对于其他函数稍后可能会设置的标志。

+0

谢谢。正如我前面所说的那样,不存在C的可能性。我只是想知道如何去做。 – ApprenticeHacker