�Ի�����ͼ�ν�������ߵĺ�����
������ dlg_one
���������ҵ�һ���]��ʹ�öԻ���ij��������κ��ı��༭����������ʲô�༭��֮��Ķ����������ļ�->�����˵�����ͻῴ��һ���Ի������ܿ��ܾ�Ҫ��ѡ��һҪ���ļ���
�����Ի������ڱ�ʵĴ��ļ�����������������ۺ���������Ի���������˵ĵط��������ṩ��һ�ֿ�ݵķ�ʽ������һ��ͼ�ν����һЩĬ�ϵĴ������������p����������Ҫд�Ĵ�����
����Ҫ��ס��һ����ǶԻ�����ʵ���Ǵ������Ի�������ͨ�Ĵ��ڵ����e����ϵͳΪ�Ի�������һЩ����Ĵ������������紴������ʼ���ؼ���������tab˳������������������ͨ���ڵ�API�������������ڶԻ�����
������һ���Ǵ����Ի�����Դ.�����κε���Դ������δ������Ƕ������õı�����/IDE�����
����������չʾ.rc�ļ��еĶԻ�����ı������㽫�����ϵ������Ŀ��ȥ��
IDD_ABOUT DIALOG DISCARDABLE 0, 0, 239, 66
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "My About Box"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "&OK",IDOK,174,18,50,14
PUSHBUTTON "&Cancel",IDCANCEL,174,35,50,14
GROUPBOX "About this program...",IDC_STATIC,7,7,225,52
CTEXT "An example program showing how to use Dialog Boxes\r\n\r\nby theForger",
IDC_STATIC,16,18,144,33
END
������һ������IDD_AGOUTDLGΪ��Դ�ı�ʶ��DIALOG����Դ���������ĸ�����Ϊ�����������������������Dz������������ǻ���ϵͳ�����������Ñ�ѡ�����Ĵ�С�Ի���λ�������ѡ����һ������������Ի���ʹ������ѡ����С����������Ի������Ӧ��СЩ����һ�����Ҫ����ΪҪȷ�����еĿؼ��õ�ǰ�������Ժ��ʵĴ�С��ʾ���������MapDialogRect()�����е�ʱ��ѶԻ���λת�QΪ������DISCARDABLE����ϵͳ�ڲ��ô���Դ��ʱ���佻�Q�������Խ�ʡϵͳ��Դ�����Dz���˵������
�����ڶ�����STYLE��ͷȻ���ں���������������˶Ի���Ĵ��ڷ������Щ����İ����ĵ��еĹ���CreateWindow()˵���л��н�����Ϊ��ʹ���Ѷ���õ���Щ��������Ҫ�����.rc�ļ��м���#include
"windows.h"�����������ʹ��VC++�Ļ�winres.h��afxres.hҲ�����������ʹ����Դ�༭���Ļ���Щ�ļ�������Ҫ��ʱ���Զ�������ȥ��
����CAPTION����Ӧ��һ����֪����ʲô��˼��
����FONT����ָ�����������������˶Ի�����������С����������Ϊ��ͬ�����в�ͬ�����岢����ָ����ͬ���������������ڲ�ͬ�ļ�����Ͽ��ܿ�������һ������Ȼ��һ�㲻��Ϊ�˲�����
�������������ÿؼ����б��������˶Ի���
DEFPUSHBUTTON "&OK",IDOK,174,18,50,14
��������ָ��OK��Ť�������&�е���˵�����Ǹ����»������Ǹ���ĸ��O���������Ñ�������Alt+O����������ؼ���������������ᵽ�ĶԻ���������Ĭ�ϴ�����һ��������IDOK�ǿؼ��ı�ʶ��IDOK�Ǽ�������õ����������Dz���Ҫ�Լ���#define�����������������ĸ�����Ϊ�����������������������ǶԻ���λ��
������Щ��Ϣ̫����ѧ��������������һ�㶼��һ����Դ�༭���������Ի���������֪��������ı��ķ�ʽ������Щ���黹�Ǻ��б�Ҫ������������]��һ��ͼ�λ��ı༭������r����
�����������ؼ��ı�ʶΪIDC_STATIC������-1���������������Զ������Ҫȥ��д�������������Dz�����Ҫһ����ʶ�����Ǹ�����һ����ʶҲ�]��ʲô������������Դ�༭�����Զ�Ϊ����һ����
�����o̬�ؼ��е��ı��е�"\r\n"��һ��CR-LF������ʾ�Qһ��������
��������������Щ�ӵ�.rc�ļ���ȥ������Ҫдһ���Ի���Ĺ�������������Ի������Ϣ����Ҫ�������ⲻ��ʲô���µ�֪ʶ��ʵ�����������ǵ������ڵĴ��ڵĹ��̲����������ȫһ������
BOOL CALLBACK AboutDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch(Message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
EndDialog(hwnd, IDOK);
break;
case IDCANCEL:
EndDialog(hwnd, IDCANCEL);
break;
}
break;
default:
return FALSE;
}
return TRUE;
}
�����Ի�����̸����ڹ�����һЩ��Ҫ�IJ�e������һ�����Ƕ����㲻��������Ϣ������DefWndowProc()���ڶԻ����������Զ���ɵ�����Ҫ�����Ҫ�Լ����õĻ�������������
�����ڶ���ͨ�����㲻��������Ϣ�ͷ���һ��FALSE�������Ļ�����TRUE�������Ǹ���Ϣָ������Ҫ����һ���e��ֵ��ע�����������������������Ĭ�ϵľ���ʲô������������һ��FALSE�������Ǵ�������Ϣ������switch()������TRUE��
����������������DestroyWindow()���ر�һ���Ի�����������EndDialog()���ڶ��������Ƿ��ظ�����DialogBox()���Ǹ��ط��Ĵ������
���������������WM_CREATE��Ϣ��ȡ����֮������WM_INITDIALOG��Ϣ�����Ի������֮ǰ���κβ�����������TRUE��ʹ���̽��������ڵ�Ŀؼ�֮��.����ȷʵ���Դ���WM_CREATE��Ϣ�������������пؼ�������֮ǰ�ͷ�������������Ͳ��ܷ���������������WM_INITDIALOG��Ϣ����ʱ�����ؼ�����������������
����ߴߴ����İ����������ڴ�����������
case WM_COMMAND:
switch(LOWORD(wParam))
{
case ID_HELP_ABOUT:
{
int ret = DialogBox(GetModuleHandle(NULL),
MAKEINTRESOURCE(IDD_ABOUT), hwnd, AboutDlgProc);
if(ret == IDOK){
MessageBox(hwnd, "Dialog exited with IDOK.", "Notice",
MB_OK | MB_ICONINFORMATION);
}
else if(ret == IDCANCEL){
MessageBox(hwnd, "Dialog exited with IDCANCEL.", "Notice",
MB_OK | MB_ICONINFORMATION);
}
else if(ret == -1){
MessageBox(hwnd, "Dialog failed!", "Error",
MB_OK | MB_ICONINFORMATION);
}
}
break;
// Other menu commands...
}
break;
��������������������ҵĹ��ڶԻ���Ĵ�������Ӧ�ÿ�������Ӧ���Ƶ����WM_COMMAND��Ϣ�����Ĵ�����ȥ����������㻹��������������Ҫ��ϰ���ڲ˵�����Щ�½���ID_HELP_ABOUT���ҵ�Help->About�˵���ı�ʶ��
������Ϊ����Ҫ���ǵ������ڵIJ˵�����������Ի�����������Ȼ��Ҫ����Щ����ŵ����������ڵ�WndProc()��ȥ�������ǶԻ���Ĺ�������
���������Ҵ洢�˵���DialogBox()�ķ���ֵ��������Ϳ��Թ۲�����������ť��Ч�����ڶԻ����а�Esc��Enter�ȵ�������������Ҳչʾ�����ͨ���Ի���ķ���ֵ���ж��Ƿ���óɹ������Ñ���ѡ���������������ĶԻ���������뷵�ظ������ߵ��κ���Ϣ��
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_ABOUT), hwnd, AboutDlgProc);
��������Ψһ��Ҫ�ĵط����������δ���ŵ�����Ҫ�Ի�����ֵ��κεط���IDD_ABOUT�ǶԻ�����Դ�ı�ʶ��hwnd�ǶԻ���ĸ����ڵľ��.AboutDlgProc()��Ȼ���������ƶԻ���ĶԻ�������
�����㶨����Sit
IDD_UBU��sit.
����ijЩ�e���еĶ��߿��ܻ��������DialogBox()ֱ���Ի��رղŷ��صĻ�������������ʾ��ʱ���ܴ�����Ϣ������ô��������������ΪDialogBox()�и��ص�������Լ�����Ϣѭ�������Ե��Ի�����ʾ��ʱ�������ǵ���Ϣѭ�����ڽ��в��Ҵ��ڴ�����Ĭ�ϵ���Ϣѭ���������Ϣѭ��Ҳ�������Ƶ��㰴��Tab��ʱ�ڿؼ�֮���ƶ����̵Ľ����������
��������һ��ʹ�öԻ����Ч�������ڶԻ���ر�֮ǰ��������ڽ�����ֹ����ʱ�������Ҫ����Ч������ʱ�㲻����������������ʱ������Ҫ���ǵĶԻ�����Ϊһ�������Ĺ�������������r��������Ҫ�܉�ͬʱ�������ǵĶԻ���������������Ҳ��������½�Ҫ���ă�����
|