2012-02-16 55 views
0

我想在我的win32窗口中實現一個自定義的選項卡控件,爲此我使用了一個分層窗口,它是主應用程序窗口(用於主選項卡控件)的子窗口,以及獨立窗口個別標籤項目。在win32中同時移動分層窗口

我的問題:每當我移動主應用程序窗口時,控制窗口隨之移動(因爲它的子窗口),其中各個選項卡項目窗口保持在其位置上。任何人都可以指導我如何讓標籤項目窗口與主應用程序窗口同時移動?我無法將項目窗口設置爲應用程序的子項,因此請根據您的建議進行設置。

回答

3

您應該重新設計您的選項卡爲子窗口。否則,你嘗試使它工作只不過是一個絕望的嘗試,以解決首先造成不好的事情。

如果你想堅持原來的計劃,你需要掛鉤/子類的主應用程序窗口,並處理其移動和大小的消息(WM_MOVING和朋友),以便您的處理程序可以分別更新您的彈出/選項卡窗口位置。

+0

其實我使用分層窗口的標籤項目;並根據msdn,(http://msdn.microsoft.com/en-us/library/windows/desktop/ff700543(v=vs.85).aspx)我不能指定該窗口爲兒童,如果它是一個分層窗口。這層必須是獨立的.. 雖然謝謝!我會研究你的第二個建議。我爲我的主窗口使用MFC窗口,並且無法找到WindPorc()方法的位置。 對不起,我的跛腳問題,我是一個在win32編程總新手,我不允許使用MFC的所有功能。 – 2012-02-16 09:56:19

+1

恐怕你沒有按照我想要的方式閱讀我的答案。就像這樣:你不應該使用分層窗口,你應該使用子窗口來代替。至於'WndProc',每個窗口都有它,並且有一個句柄足以通過'SetWindowLong'和'GWL_WNDPROC'進行子類化。如果你喜歡走錯路,那還是你的選擇。 – 2012-02-16 09:59:44

+0

我需要將事件轉移到主控制窗口,如果他們被點擊不理想的地方。而這個可以實現的唯一方法是使用分層窗口。 我已經找到了在哪裏捕捉大小事件,感謝您的幫助! – 2012-02-17 06:13:26