对话框分“模态”和“非模态”两种,其中模态对话框最为常见。当程序显示一个模态对话框时,用户不能在对话框和该程序的其他窗口之间进行切换。用户必须先明确地终止该对话框。这通常由单击OK或Cancel按钮来实现。但是当对话框正在显示时,用户可以切换到其他的程序。有些对话框(所谓“系统模态”)则连这种切换都不允许。在Windows中,用户必须先结束系统模态对话框才可以进行其他操作。本节我们将首先介绍模态对话框。
本节必须掌握的知识点:
第63练:模态对话框
模态对话框
第64练:复杂的模态对话框
第65练:自定义的模态对话框
10.1.1 第63练:模态对话框
/*------------------------------------------------------------------------
063 WIN32 API 每日一练
第63个例子ABOUT1.C:模态对话框
AboutDlgProc对话框过程
DialogBox函数
EndDialog函数
WM_INITDIALOG消息
(c) www.bcdaren.com 编程达人
-----------------------------------------------------------------------*/
#include <windows.h>
#include "resource.h"
LRESULT CALLBACK Wndproc(HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK AboutDlgProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd )
{
static TCHAR szAppName[] = TEXT("ABOUT1");
…(略)
return msg.wParam;
}
LRESULT CALLBACK Wndproc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
static HINSTANCE hInstance;
switch (message)
{
case WM_CREATE:
hInstance = ((LPCREATESTRUCT)lparam)->hInstance;//获取当前实例句柄
return 0;
case WM_COMMAND:
switch (LOWORD(wparam))
{
case IDM_APP_ABOUT: //激活对话框

1164

被折叠的 条评论
为什么被折叠?



