InitCommonControlsEx Function|MFC通用控件初始化

匿名 (未验证) 提交于 2019-12-02 22:56:40

MFC工程中,在InitInstance()函数(一般在工程名.cpp文件中)中有这样一段代码:
*************************************************************************************
 // 如果一个运行在 Windows XP 上的应用程序清单指定要
 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
 //则需要 InitCommonControlsEx()。否则,将无法创建窗口。


  // 将它设置为包括所有要在应用程序中使用的
 // 公共控件类。


**************************************************************************************
这些代码的作用,注释里已经说的很清楚了,我们先来看下这写代码是什么意思。
我们从InitCommonControlsEx函数下手,其函数原型为:


lpInitCtrls
);

其有一个参数lpInitCtrls,是一个指向结构体INITCOMMONCONTROLSEX的长指针,上面的代码先创建一个INITCOMMONCONTROLSEX结构体对象 InitCtrls,然后将其地址作为InitCommonControlsEx函数的参数。INITCOMMONCONTROLSEX结构体的定义在commctrl.h文件中,下面的代码节选自commctrl.h文件,其中包括InitCommonControls和InitCommonControlsEx函数的声明以及tagINITCOMMONCONTROLSEX 结构体的定义。
  INITCOMMONCONTROLSEX结构体包含两个参数dwSize和dwICC,参数说明请看注释。_WIN32_IE和_WIN32_WINNT的定义请看stdafx.h文件。
  InitCommonControlsEx函数的调用效果是累加的,例如你先以ICC_TAB_CLASSES标志调用InitCommonControlsEx,然后以ICC_BAR_CLASSES 标志调用,那么tab和bar通用控件类都将被注册并在你的程序中是可用的。InitInstance()函数中采用的ICC_WIN95_CLASSES其实是上面那些标志的组合。

********************************************commctrl.h**********************************************************

WINCOMMCTRLAPIvoidWINAPI InitCommonControls(void);

#if(_WIN32_IE >= 0x0300)
typedefstructtagINITCOMMONCONTROLSEX {


} INITCOMMONCONTROLSEX,*LPINITCOMMONCONTROLSEX;












#if(_WIN32_IE >= 0x0400)



#endif
#if(_WIN32_WINNT >= 0x501)


#endif

************************************************************************************************************************

ICC_BAR_CLASSES――注册工具栏、状态栏、Trackbar和Tooltip类。
ICC_COOL_CLASSES――注册Rebar类。
ICC_DATE_CLASSES――注册Date and Time Picker类。
ICC_HOTKEY_CLASS――注册Hot Key类。
ICC_INTERNET_CLASSES――注册IP Address Picker类。
ICC_LISTVIEW_CLASSES――注册ListView和Header类。
ICC_PAGESCROLLER_CLASS――注册Pager类。
ICC_PROGRESS_CLASS――注册Progress Bar类。
ICC_TAB_CLASSES――注册Tab和Tooltip类。
ICC_TREEVIEW_CLASSES――注册TreeView和Tooltip类。
ICC_UPDOWN_CLASS――注册Up-Down类。
ICC_USEREX_CLASSES――注册ComboBoxEx类。
ICC_WIN95_CLASSES――注册InitCommonControls函数注册的所有类。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!