对话框默认消息处理

【勇芳软件工作室】汉化HomePreviousNext

预定义对话框类的窗口过程对对话框过程不处理的所有消息执行默认处理。当对话框过程对任何消息返回FALSE时,预定义的窗口过程将检查消息并执行以下默认操作:

信息默认动作
DM_GETDEFID您可以将此消息发送到对话框。对话框返回默认按钮的控制标识符,如果对话框有一个;否则返回0。
DM_REPOSITION您可以将此消息发送到顶级对话框。对话框重新定位,使其适合桌面区域。
DM_SETDEFID您可以将此消息发送到对话框。对话框将默认按钮设置为由【wParam中】参数中的控制标识符指定的控件。
WM_ACTIVATE如果对话框被激活,将输入焦点恢复到由先前保存的句柄识别的控件。否则,程序将保存具有输入焦点的控件的句柄。
WM_CHARTOITEM返回零。
WM_CLOSEBN_CLICKED通知消息发送到对话框,指定IDCANCEL作为控制标识符。如果对话框具有IDCANCEL控件标识符,并且控件当前被禁用,则该过程会发出警告,不会发布消息。
WM_COMPAREITEM返回零。
WM_ERASEBKGND使用从WM_CTLCOLORDLG消息返回的画笔或默认窗口颜色填充对话框客户区。
WM_GETFONT返回应用程序定义的对话框字体的句柄。
WM_INITDIALOG返回零。
WM_LBUTTONDOWN向具有输入焦点的组合框发送CB_SHOWDROPDOWN消息,指示控件隐藏其下拉列表框。过程调用DefWindowProc完成默认操作。
WM_NCDESTROY在对话框中释放分配给编辑控件的全局内存(适用于指定DS_LOCALEDIT样式的基于Windows的应用程序中的对话框),并释放任何应用程序定义的字体(适用于指定DS_SETFONT样式的对话框)。该过程调用DefWindowProc函数来完成默认操作。
WM_NCLBUTTONDOWN向具有输入焦点的组合框发送CB_SHOWDROPDOWN消息,指示控件隐藏其下拉列表框。过程调用DefWindowProc完成默认操作。
WM_NEXTDLGCTL将输入焦点设置为对话框中的下一个或上一个控件,到由【wParam中】参数中的句柄标识的控件,或对话框中可见,未禁用的第一个控件,并具有WS_TABSTOP样式。如果具有输入焦点的当前窗口不是控件,则该过程将忽略此消息。
WM_SETFOCUS将输入焦点设置为由先前保存的控制窗口句柄标识的控件。如果不存在这样的句柄,则过程将输入焦点设置为对话框模板中的第一个控件,该对话框模板是可见的,未被禁用的,并具有WS_TABSTOP样式。如果不存在这样的控制,则该过程将输入焦点设置为模板中的第一个控件。
WM_SHOWWINDOW如果对话框被隐藏,则保存具有输入焦点的控件的句柄,然后调用DefWindowProc完成默认操作。
WM_SYSCOMMAND如果对话框被最小化,则保存具有输入焦点的控件的句柄,然后调用DefWindowProc完成默认操作。
WM_VKEYTOITEM返回零。

预定义的窗口过程将所有其他消息传递给DefWindowProc进行默认处理。