MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法
<参考资料 MSDN MFC TNO 15>
文档将概述MFC中定制自定义控件的3种方法:
拥有者绘制控件(Owner Drawing Control and Menu) 自绘制控件(self drawing control and menu) 和子集化(subclass)
1 使用MFC方法定制控件必备的几个基本概念:
控制定制风格的控件的几个标准Windows消息:
WM_MEASUREITEM
WM_COMPAREITEM
WM_DELETEITEM
WM_DRAWITEM
消息的详细说明:
1.1 WM_MEASUREITEM
当自绘制风格(owner draw)的控件(owner-drawn button, combo box, list box, list view control, or menu item)创建时控件的父窗体将受到这个消息用于定制控件的大小
WM_MEASUREITE
MidCtl = (UINT) wParam;//控件的标识
lpmis = (LPMEASUREITEMSTRUCT) lParam;//控件的大小信息
消息处理的返回值:
当函数处理了这个消息必须返回TRUE
1.2 WM_COMPAREITEM
系统发送此消息用于设定一个需要排序的控件(如具有CBS_SORT风格的COMBOBOX,有LBS_SORT风格的LISTBOX)新插入项的位置信息
WM_COMPAREITEM
idCtl = w