预定义列表框窗口类的窗口过程对列表框不处理的所有消息执行默认处理。当列表框过程对消息返回FALSE时,预定义的窗口过程将检查消息并执行默认操作,如下表所示。
信息 | 默认动作 |
WM_CHAR | 将选择移动到以用户键入的字符开头的第一个项目。如果列表框具有LBS_OWNERDRAW样式,则不会发生任何操作。 在短时间内输入的多个字符将被视为一个组,并且选择以该系列字符开头的第一个项目。 |
WM_CREATE | 创建一个空列表框。 |
WM_DESTROY | 销毁列表框,并释放其使用的任何资源。 |
WM_DROPFILES | 将消息传递到对话框过程或父窗口进程。 |
WM_ENABLE | 如果控件可见,则使矩形无效,因此可以将字符串绘制为灰色。 |
WM_ERASEBKGND | 清除列表框的背景。如果列表框具有LBS_OWNERDRAW样式,则背景不会被清除。 |
WM_GETDLGCODE | 返回DLGC_WANTARROWS | DLGC_WANTCHARS,表示默认列表框过程处理箭头键和WM_CHAR消息。 |
WM_GETFONT | 返回列表框当前字体的句柄。 |
WM_HSCROLL | 水平滚动列表框。 |
WM_KEYDOWN | 处理用于滚动的虚拟键。虚拟键是将插入符号移动到的项目的索引。选择不更改。 |
WM_KILLFOCUS | 将插入符号关掉并将其破坏。向列表框的所有者发送LBN_KILLFOCUS通知消息。 |
WM_LBUTTONDBLCLK | 在列表框客户区中跟踪鼠标。这使得用户可以在列表框客户区域外释放鼠标按钮来取消选择。 |
WM_LBUTTONDOWN | 在列表框客户区中跟踪鼠标。这使得用户可以在列表框客户区域外释放鼠标按钮来取消选择。 |
WM_LBUTTONUP | 在列表框客户区中跟踪鼠标。这使得用户可以在列表框客户区域外释放鼠标按钮来取消选择。 |
WM_MOUSEMOVE | 在列表框客户区中跟踪鼠标。这使得用户可以在列表框客户区域外释放鼠标按钮来取消选择。 |
WM_PAINT | 通过使用设备上下文(DC)的列表框句柄来执行子类化操作。 |
WM_SETFOCUS | 打开插入符号,并向列表框的所有者发送LBN_SETFOCUS通知消息。 |
WM_SETFONT | 为列表框设置一个新的字体。 |
WM_SETREDRAW | 根据【wParam中】的值设置或清除重画标志。 |
WM_SIZE | 将列表框调整为整数个项目。 |
WM_VSCROLL | 垂直滚动列表框。 |
预定义的列表框过程将所有其他消息传递给DefWindowProc进行默认处理。