我試圖調用OpenThemeData(請參閱msdn OpenThemeData)函數,但我無法確定pszClassList
參數傳入的可接受類名稱。OpenThemeData函數可能的類是什麼?
HTHEME OpenThemeData(
HWND hwnd,
LPCWSTR pszClassList
);
有人能告訴我什麼是我可以傳入該參數的可接受的類名嗎? 謝謝!
我試圖調用OpenThemeData(請參閱msdn OpenThemeData)函數,但我無法確定pszClassList
參數傳入的可接受類名稱。OpenThemeData函數可能的類是什麼?
HTHEME OpenThemeData(
HWND hwnd,
LPCWSTR pszClassList
);
有人能告訴我什麼是我可以傳入該參數的可接受的類名嗎? 謝謝!
您可以查看「AeroStyle.xml」作爲之前發佈的海報,其中給出了Vista/Aero的確切列表。但是,如果你想玩的安全(你可能會這樣做),類名一般應該是Windows公共控件的Windows類名。例如,按鈕和複選框使用類名「Button」,編輯控件「Edit」等。我通常選擇與我正在處理的任何自定義元素最接近的控件的類名稱,並使用主題數據。通過這種方式,無論用戶選擇的主題是什麼,您都可以獲得適用於XP,Vista和(有希望)Windows 7的代碼。
但是,除非您使用原始Win32很多,否則您可能不直接使用類名進行大量控件創建。 MSDN中的類名相當寬鬆。一個很好的開始的地方通常是Platform SDK中的「CommCtrl.h」文件,它有很多這樣的文件,它們總是在MSDN幫助中描述的各個通用控件中。您也可以通過在文本編輯器中打開它們來查看.rc文件中如何定義對話框來了解它們:它們包含控件的類名稱。
類名取決於主題。例如,作爲OpenThemeData狀態的文檔:
的Aero主題的類名 在AeroStyle.xml,這是 在 Microsoft Windows軟件開發工具包 的包含文件夾中找到(SDK)中定義。
它與Aero無關,它甚至不會在XP上退出! 參見OpenThemeData()..的源代碼
MSDN上的製品Parts and States包含一個表,其示出了控制類,份,和狀態。表中的值在Vsstyle.h
和Vssym32.h
中定義。
這裏是一個快速參考:
BUTTON, CLOCK, COMBOBOX, COMMUNICATIONS, CONTROLPANEL, DATEPICKER, DRAGDROP,
EDIT, EXPLORERBAR, FLYOUT, GLOBALS, HEADER, LISTBOX, LISTVIEW, MENU, MENUBAND,
NAVIGATION, PAGE, PROGRESS, REBAR, SCROLLBAR, SEARCHEDITBOX, SPIN, STARTPANEL,
STATUS, TAB, TASKBAND, TASKBAR, TASKDIALOG, TEXTSTYLE, TOOLBAR, TOOLTIP,
TRACKBAR, TRAYNOTIFY, TREEVIEW, WINDOW
的問題的答案Windows Visual Themes: Gallery of Parts and States?提供「零件和國家資源管理器」應用程序,你可以瀏覽和測試大部分的風格。
Aero作爲一個例子在哪裏尋找關於主題支持的各種類名的更多信息。你不應該暗示沒有指定的連接。 – 2008-10-20 17:55:18