关于对话框
对话框是一个临时的窗口,用来显示信息或提示用户输入。示例程序提供了一个关于对话框。每个应用程序都应该包含一个关于对话框。关于对话框显示诸如应用程序名字和版权信息此类的信息。
你可以使用DialogBox函数创建并显示一个对话框。这个函数接受一个对话框模板并创建一个对话框。
示例程序在资源文件中包含下面的对话框模板:
AboutDlg DIALOG FIXED 6, 21, 198, 99
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "About Generic"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "&OK", IDOK, 72, 74, 40, 14
LTEXT "Generic Application", 104, 45, 14,
128, 8
LTEXT "Written as a sample", 105, 45, 35, 59, 8
LTEXT "Microsoft Corporation", 106, 45, 45, 98, 8
LTEXT "Copyright (c) 1996", 107, 45,
54, 138, 8
END
资源的名字被指定为AboutDlg。更多资源参见Dialog Resource。
当用户从帮助菜单中单击About命令时,下面在窗口进程中的代码会显示关于对话框:
case WM_COMMAND:
switch( wParam ) {
case IDM_ABOUT:
DialogBox( ghInstance, "AboutDlg", hWnd, (DLGPROC)
AboutDlgProc );
break;
}
break;
DialogBox函数中最后一个参数是一个指向对话框过程(dialog box procedure)的指针,它的原型如下:
LRESULT WINAPI AboutDlgProc( HWND, UINT, WPARAM, LPARAM );
一个对话框过程类似于一个窗口过程,但是通常只处理对话框的初始化和用户的输入信息。示例程序包含的消息处理代码如下:
switch( uMsg ) {
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
switch( wParam ) {
case IDOK:
EndDialog( hDlg, TRUE );
return TRUE;
}
break;
}
return FALSE;