пятница, 10 сентября 2010

Comctl32.dll — важная деталь в механизме под названием Windows. Именно этой библиотеке мы обязаны кнопками и прочими элементами в характерном стиле XP. Common controls... Конечно, всё это уходит в прошлое, скоро XP отметит 10-летний юбилей, солидный возраст для софта.
Итак, привычный стиль XP. Если писать приложение с нуля, то стандартный функционал WinAPI не даёт программисту и такого стиля, выдавая на-гора оквадраченные кнопки с убогим системным шрифтом.
Что делать?
Читать дальше...
Во-первых, статически прилинковать comctl32.lib к проекту, либо сделать одиночный вызов ::LoadLibrary("comctl32.dll"
; до начала использования контролов.
Во-вторых, прикрутить сей манифест:
//------------------------------------------------------------
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\""
//------------------------------------------------------------
|
В-третьих, разобраться с именами классов контролов, предоставляемых comctl32.dll.
В этом нам поможет следующая таблица:
//------------------------------------------------------------ -------------------------------------------------------------------------- N Description Class Define -------------------------------------------------------------------------- 1. HEADER CONTROL SysHeader32 WC_HEADER 2. TOOLBAR CONTROL ToolbarWindow32 TOOLBARCLASSNAME 3. REBAR CONTROL ReBarWindow32 REBARCLASSNAME 4. TOOLTIPS CONTROL tooltips_class32 TOOLTIPS_CLASS 5. STATUS BAR CONTROL msctls_statusbar32 STATUSCLASSNAME 6. TRACKBAR CONTROL msctls_trackbar32 TRACKBAR_CLASS 7. UPDOWN CONTROL msctls_updown32 UPDOWN_CLASS 8. PROGRESS CONTROL msctls_progress32 PROGRESS_CLASS 9. HOTKEY CONTROL msctls_hotkey32 HOTKEY_CLASS 10. LISTVIEW CONTROL SysListView32 WC_LISTVIEW 11. TREEVIEW CONTROL SysTreeView32 WC_TREEVIEW 12. ComboBoxEx ComboBoxEx32 WC_COMBOBOXEX 13. TAB CONTROL SysTabControl32 WC_TABCONTROL 14. ANIMATE CONTROL SysAnimate32 ANIMATE_CLASS 15. MONTHCAL CONTROL SysMonthCal32 MONTHCAL_CLASS 16. DATETIMEPICK CONTROL SysDateTimePick32 DATETIMEPICK_CLASS 17. IP Address edit control SysIPAddress32 WC_IPADDRESS 18. Pager Control SysPager WC_PAGESCROLLER 19. Native Font Control NativeFontCtl WC_NATIVEFONTCTL 29. Button Control Button WC_BUTTON 21. Static Control Static WC_STATIC 22. Edit Control Edit WC_EDIT 23. Listbox Control ListBox WC_LISTBOX 24. Combobox Control ComboBox WC_COMBOBOX 25. Scrollbar Control ScrollBar WC_SCROLLBAR 26. SysLink control SysLink WC_LINK --------------------------------------------------------------------------
//------------------------------------------------------------
|
Для использования макросов требуется подключить commctrl.h.
Контрол RichEdit живёт отдельно от других, в разных версиях Windows — в разных библиотеках.
RichEdit 1.0 находится в Riched32.dll, RichEdit 2.0 и выше в RichEd20.dll, RichEdit 4.1 и выше в Msftedit.dll.
//------------------------------------------------------------ -------------------------------------------------------------------------- N Description Class Define -------------------------------------------------------------------------- 1. RichEdit 1.0 ANSI RICHEDIT RICHEDIT_CLASS10A 2. RichEdit 2.0+ UNICODE RichEdit20W RICHEDIT_CLASSW 3. RichEdit 2.0+ ANSI RichEdit20A RICHEDIT_CLASSA 4. RichEdit 4.1+ UNICODE RICHEDIT50W MSFTEDIT_CLASS -------------------------------------------------------------------------- //------------------------------------------------------------
|
Для использования макросов требуется подключить richedit.h.
@темы:
.DLL