子窗口控制
分类
标准控件
由具有WS_CHILD风格的普通窗口创建
man Controls)
Date and Time Picker、Flat Scroll、IP Address、Listview、Treeview、ToolTip、Month Calendar
自定义子控件
由具有WS_CHILD风格的普通窗口创建
按钮
CreateWindow(Ex)
窗口类——“button”
风格——BS_CHECKBOX、BS_DEFPUSHBUTTON、BS_GROUPBOX、BS_PUSHBUTTON、BS_RADIOBUTTON、BS_AUTOCHECKBOX、BS_3STATE
位置、大小
父窗口句柄
子窗口ID
获取子窗口标识
ID
int GetDlgCtrlID( HWND hwndCtl );
HANDLE
HWND GetDlgItem( HWND hDlg, int nIDDlgItem);父窗口,id
消息传递
当子窗口状态改变时,子窗口处理鼠标和键盘消息(有自己的消息回路),并通知父窗口,父窗口也可以向子窗口发送控制消息
子窗口——>父窗口
MAND
LOWORD(wParam) HIWORD(wParam) lParam
子窗口ID 通知码子窗口句柄
通知码
BN_CLICKED、BN_PAINT、BN_DISABLE、BN_PUSHED、BN_UNPUSHED、BN_DBLCLK、BN_SETFOCUS、BN_KILLFOCUS 、WM_CTLCOLORBTN
父窗口——>子窗口
SendMessage
BM_GETCHECK、BM_SETCHECK、BM_GETSTATE、BM_SETSTATE、BM_SETSTYLE、BM_CLICK、BM_GETIMAGE、BM_SETIMAGE
按钮样式
实例
源码
所有者绘制按钮
所有者绘制:由父窗口进行绘制,可以全面控制子窗口的外观,而不受键盘和鼠标的影响
创建时指定BS_OWNERDRAW风格
向父窗口发送消息
WM_CTLCOLORBTN
设置文本和背景色、返回画刷句柄
WM_DRAWITEM
按钮被创建、按下或释放、得到或失去焦点、需要重新着色时
所有者绘制按钮
实例
源码
子窗口控制 来自淘豆网www.taodocs.com转载请标明出处.