天天看點

【GTK】如何得到控件的位置

不同的情況對應有不同的解決的辦法.

如果你想得到一個控件相對于它的父視窗的位置,你需要使用widget->allocation.x 和 widget->allocation.y.

如果你想的到一個視窗相對于X主視窗(X root window)的位置,

      你應該使用gdk_window_get_geometry()

                         gdk_window_get_position() 

                 或者 gdk_window_get_origin().

如果你想得到一個視窗(包括WM修飾的視窗)的位置,應該使用gdk_window_get_root_origin().

最後但不是不重要,如果你想得到視窗管理器的位置,你應該使用gdk_window_get_deskrelative_origin().

你選擇的視窗管理器(Window Manager)将可能影響上面函數的結果,在寫你的程式的時候,你應該記住這一點.這主要是決定于視窗管理器如何管理對視窗添加的修飾.