2011-09-28 7 views
1

나는 최대화 된 상태 일 때을 최대화하고 다시 변경할 때만 특정 속성을 에주고 싶습니다. 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

답변

2

창을 만들 때 "창 상태 이벤트"신호를 설정하고 감시하십시오. GDK_WINDOW_STATE_MAXIMIZED이 TRUE 될 때 호출 될 핸들러 것 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()를 참조하십시오. http://developer.gnome.org/gdk/stable/gdk-Events.html#GDK-STRUCTURE-MASK:CAPShttp://developer.gnome.org/gdk/stable/gdk-Event-Structures.html#GdkEventWindowState 및 죄송합니다

http://developer.gnome.org/gdk/stable/gdk-Event-Structures.html#GdkWindowState는, 실제로 코드를 작성하지 않고보다 훨씬 더 도움이되지 수 있습니다 참조하십시오. Google은 좋은 사례가있을 수 있으며 다시는 그렇지 않을 수도 있습니다. 실제로 어떤 문서가 이미 GTK + 신호를 할 수있는 사람들을위한 것입니다.

편집 : 나는 C에서 GTK +를하고 내가 인용 페이지는 C.

편집 # 2 : 핸들러 (콜백) 신호가 전송되고 신호 데이터가 중요한 것입니다 때마다 실행된다. 아마도 나는 각 신호 데이터 값에 대한 switch : case를 사용하여 나에게 관심을 가지며 나중에 다른 함수에 대한 플래그를 설정하여 나중에 읽을 수 있습니다.

+0

감사합니다. 이전에 말했듯이 C가 맞는지는 알 수 없습니다. 나는 그걸하는 방법을 알고 싶었습니다. – ApprenticeHacker

관련 문제