2010-03-19 101 views
1

Windows資源管理器的ListView控件爲鼠標下的任何項目提供突出顯示,而不影響當前選擇。這有助於在列表視圖中將給定的工具提示應用到什麼項目上 - 特別是在報告模式下。MFC/WIN32:鼠標懸停突出顯示在列表控件中

但是,我目前無法找到任何API可以給我的MFC應用程序的CListCtrl相同的行爲。擴展樣式只有LVS_EX_TRACKSELECT,它實際上改變了當前的選擇(yuck!)。

是否有人知道如何提供一個標準的CListCtrl(或者其他實際位於其上的)鼠標熱追蹤功能?

我發現如何每小區和每行提示文本提供了一些文章,但它很難說什麼的提示涉及到沒有什麼突出...

+0

我不得不鏈接到uxtheme.lib,但這工作得很好。跛腳,我需要添加這種依賴,只是爲了得到這樣的眼睛糖果。 – Mordachai

回答

2

您可以將資源管理器主題設置爲您的列表控件。這樣它會得到一個更好的外觀,你也將得到你想要的突出顯示:

SetWindowTheme(hListControl, L"Explorer", NULL); 
2

包括LVS_EX_TWOCLICKACTIVATE或LVS_EX_ONECLICKACTIVATE的擴展風格。這被稱爲「熱追蹤」(與熱追蹤選擇相反)。 http://msdn.microsoft.com/en-us/library/bb774732%28VS.85%29.aspx

+0

第二個答案聽起來像是要工作。但是,我沒有得到任何熱追蹤(使用ONECLICKACTIVATE)工作。我已經嘗試過這種風格,並與LVS_EX_TRACKSELECT。但即使有6.0的控制清單,在Win7下,我看起來比較舊,並且沒有熱追蹤:( – Mordachai

+0

這個示例在Win7上顯示熱追蹤(甚至不需要指定擴展風格):http ://www.codeproject.com/KB/list/CListCtrl_column_picker.aspx –

相關問題