環境: Visual Studio 2008,Visual Studio功能包,MFC對話框應用程序,Windows XP,新通用控件。列表控件在選項卡控件上的SetFocus重繪錯誤
我遇到了一個列表控件碰巧出現在選項卡控件上的問題。
要重現該問題,只需創建一個基於對話框的應用程序。在該對話框上放置一個選項卡控件,然後將一個列表控件放到該選項卡控件上。您不需要向該項目添加任何代碼。只需構建並運行。將焦點設置到列表視圖,然後最小化對話框或在其前面放置另一個窗口。
現在讓對話框回到前臺,列表將不會正確繪製自己。
有一件事我已經試過是辦理列表控制的設定焦點事件,而是用空的方法體離開它,即...
void CMyListControl::OnSetFocus(CWnd* window)
{
// Default();
}
然後重繪問題消失,但是現在你無法選擇列表中的項目。取消對默認呼叫的註釋會使問題重新出現。
如果將列表移出標籤,問題就會消失。如果我將焦點設置爲選項卡或對話框中的另一個控件,問題就會消失。這是一個奇怪的。實際上,如果仔細觀察,您可以看到列表圖形本身,然後被選項卡控件遮住。