2013-03-22 54 views
0

我正在開發帶有選項卡控件的應用程序。點擊選項卡中的圖標後,會打開一個彈出窗口,並將選項卡的內容移至彈出窗口。WinAPI更改ListView控件的父項

我所做的很簡單 - 將選項卡中每個控件的父項更改爲彈出窗口(使用SetParent())。除了listview控件(虛擬列表視圖),一切都很好。

更改父級後,listview不再發送WM_NOTIFY通知。

我也測試過它與非虛擬列表視圖和相同的情況。

我搜遍了谷歌,並沒有提出任何意見,所以任何想法將不勝感激。

UPDATE

更改父後,列表視圖持續發送WM_NOTIFY通知到以前的母公司。這是常見控制中的錯誤嗎?

回答

1

許多常用控件在創建時會緩存父母。除了首先用正確的父母創建它們之外,沒有什麼可以做的。

一種解決方法是註冊一個虛擬窗口類,該虛擬窗口類除了託管有問題的公共控件外,並且將消息轉發回去。然後,您可以重置該窗口而不是控件本身。

+0

是的,我已經在想它是一種解決方案。在進一步挖掘之後,我發現了一篇知識庫文章... [link](http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q104069&wa=wsignin1.0)他們給的建議是無用的,儘管以前的父窗口已經被銷燬了...... – 2013-03-22 13:14:31