�@���[�_���_�C�A���O�{�b�N�X���o���ɂ́A���\�[�X���`����DialogBox()���Ăяo���A�Ƃ����̂���ʓI�ȕ��@�̂悤�ł��B�������_�C�A���O�{�b�N�X���`���郊�\�[�X�͍��W�n��������ȏ�ɁA���炩���߃��\�[�X���`���Ă����̂ł͎��s���ɓ��I�Ƀ_�C�A���O�{�b�N�X���쐬�ł��Ȃ��̂ŕs�ւł��B�����ŁA����̓��\�[�X��DialogBox()���g��Ȃ��Ń��[�_���_�C�A���O������������@���l���Ă݂鎖�ɂ��܂��B
���[�_���_�C�A���O
�@���[�_���_�C�A���O�́A�_�C�A���O������܂Ń_�C�A���O���Ăяo�����E�C���h�E�̑��삪�o���Ȃ��A�܂薳���������_�C�A���O�ł��B�Ƃ������́A���C���E�C���h�E���炠��E�C���h�E�����[�_���_�C�A���O�{�b�N�X�Ƃ��ČĂяo��������
- �E�C���h�E���쐬�����C���E�C���h�E�����B�����B
- �_�C�A���O�̏������s���A�_�C�A���O��������i�I�����s����j�܂ő҂�
- �_�C�A���O����ă��C���E�C���h�E��L�����������Ԃ�
�@�Ƃ���Ύ����ł���͂��ł��B�܂�A���[�_���_�C�A���O���Ăяo���đI�����ʂ�Ԃ���dialog()��
DWORD dialog() { /* ���[�_���_�C�A���O�� */ HWND hwDialog; MSG msg; /* �_�C�A���O�{�b�N�X�쐬 */ hwDialog = CreateWindow("CDialog","���[�_���_�C�A���O", WS_OVERLAPPEDWINDOW | WS_VISIBLE,CW_USEDEFAULT,CW_USEDEFAULT, 256,96,NULL,NULL,hInst,NULL); /* ���C���E�C���h�E�������ă��[�_���� */ EnableWindow(hwMain,FALSE); /* ���b�Z�[�W���[�v */ �@�@�@�@�@�@�@�@�E �@�@�@�@�@�@�@�@�E /* �_�C�A���O�����ʂ�Ԃ��܂Ń��[�v */ /* ���C���E�C���h�E��L���ɂ��ă��[�_������ */ EnableWindow(hwMain,TRUE); BringWindowToTop(hwMain); /* �_�C�A���O�̑I�����ʂ�Ԃ� */ }
�@�Ƃ�������ɂȂ�܂��B���Ȃ̂́A�_�C�A���O�̑I�����ʂł��ˁB�_�C�A���O�{�b�N�X�́A���ɂf�t�h���i��u���ă��[�U�[�����炩�̑I�����s���킯�ł����A���̑I���������s���̂̓_�C�A���O�̃E�C���h�E�v���V�[�W���|�A�܂�ʂ̊��ł��B�_�C�A���O���̕��Ń_�C�A���O�{�b�N�X�̑I�����ʂ�m�邽�߂ɂ́A�E�C���h�E�v���V�[�W���Ɖ��炩�̕��@�őI�����ʂ�����肷��K�v������܂��B
�@�ʂ̊��ƒl�̂��Ƃ������ɂ́A�ϐ��̃|�C���^��ɓn�����̕ϐ���ɏ���������������@���O���[�o���ϐ����g�����@����y�ł��傤�B����́A�_�C�A���O���ɑI�����ʂ����ϐ�dwRes��p�ӂ��āA���̕ϐ��̃A�h���X���_�C�A���O�{�b�N�X�̃E�C���h�E�v���V�[�W���|DialogProc()�ɓn�����ɂ��܂����B�E�C���h�E�v���V�[�W���|�̌^��
LRESULT CALLBACK DialogProc(HWND,UINT,WPARAM,LPARAM);
�@�Ƃ������̂ł����̂ŁA�ϐ��̃A�h���X��n�����ɂ�HWND��NULL��n���A�ϐ��̃|�C���^��UINT�Ɉꎞ�I�ɃL���X�g���ēn�����ɂ��܂��傤�B����́A�E�C���h�E�v���V�[�W���|�̐擪��
static LPDWORD lpRes; if (hwnd==NULL) { /* ���ʕϐ��̃A�h���X��ۑ� */ lpRes=(LPDWORD)iMsg; *lpRes=0; return 0; }
�@�Ƃ������������Ă����Ηǂ��ł��傤�B����ŁADialogProc()����*lpRes�̒l��������������̕ύX�̓_�C�A���O��dialog()�̃��[�J���ϐ�dwRes�ɔ��f����܂��B
�@����A�_�C�A���O�{�b�N�X�ɂ́u�P�ԁv�u�Q�ԁv�Ƃ����Q�̃{�^����u���āA�u�P�ԁv���N���b�N���ꂽ��P�A�u�Q�ԁv�Ȃ�Q�A�ǂ�����N���b�N���Ȃ��Ń_�C�A���O������ꂽ��[�P��Ԃ��悤�ɂ��܂����B���̏ꍇ�A�_�C�A���O�{�b�N�X�̃E�C���h�E�v���V�[�W���|�͈ȉ��̂悤�ɂȂ�܂��B
LRESULT CALLBACK DialogProc(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam) { HWND btN1,btN2; static LPDWORD lpRes; if (hwnd==NULL) { /* ���ʕϐ��̃A�h���X��ۑ� */ lpRes=(LPDWORD)iMsg; *lpRes=0; return 0; } switch (iMsg) { case WM_CREATE: /* �E�C���h�E�쐬���̏��� */ /* �{�^���쐬 */ btN1=CreateWindow("Button","�P��",WS_CHILD|WS_VISIBLE, 8,8,80,32,hwnd,(HMENU)0,hInst,NULL); btN2=CreateWindow("Button","�Q��",WS_CHILD|WS_VISIBLE, 96,8,80,32,hwnd,(HMENU)1,hInst,NULL); return 0; case WM_COMMAND: /* �R�}���h���b�Z�[�W */ switch (LOWORD(wParam)) { case 0: /* �P�ԃ{�^�� */ *lpRes=1; DestroyWindow(hwnd); break; case 1: /* �Q�ԃ{�^�� */ *lpRes=2; DestroyWindow(hwnd); break; } return 0; case WM_DESTROY : /* �I������ */ if (*lpRes==0) /* �ǂ�����I������Ă��Ȃ����-1 */ *lpRes=-1; return 0; } return DefWindowProc (hwnd, iMsg, wParam, lParam) ; }
�@�_�C�A���O�v���V�[�W���|�́A�I��������邩�_�C�A���O��������ƃ_�C�A���O���̃��[�J���ϐ�dwRes�̃A�h���X�ilpRes�j���w���ꏊ�ɒl���������ނ̂ŁA�ϐ�dwRes���u�O�łȂ��ԁv�_�C�A���O�̏������J��Ԃ����ɂȂ�܂��B
DWORD dialog() { /* ���[�_���_�C�A���O�� */ HWND hwDialog; DWORD dwRes; MSG msg; /* �_�C�A���O�̃E�C���h�E�v���V�[�W���|�Ɍ��ʕϐ��̃A�h���X��n�� */ DialogProc(NULL,(UINT)(&dwRes),0,0); /* �_�C�A���O�{�b�N�X�쐬 */ hwDialog = CreateWindow("CDialog","���[�_���_�C�A���O", WS_OVERLAPPEDWINDOW | WS_VISIBLE,CW_USEDEFAULT,CW_USEDEFAULT, 256,96,NULL,NULL,hInst,NULL); /* ���C���E�C���h�E�������ă��[�_���� */ EnableWindow(hwMain,FALSE); /* ���b�Z�[�W���[�v */ while (dwRes==0) { /* �_�C�A���O�����ʂ�Ԃ��܂Ń��[�v */ GetMessage(&msg,NULL,0,0); TranslateMessage(&msg); DispatchMessage(&msg); } /* ���C���E�C���h�E��L���ɂ��ă��[�_������ */ EnableWindow(hwMain,TRUE); BringWindowToTop(hwMain); /* �_�C�A���O�̑I�����ʂ�Ԃ� */ return dwRes; }
�@�_�C�A���O�{�b�N�X���́A�ȏ�ɂ悤�Ȋ����ł��B���̊��́A�Ăяo�����ƃ_�C�A���O��������܂Ő���āA�_�C�A���O��������ƑI�����ʂ�Ԃ��܂��B
�v���O����
�@����̃v���O�����́A�u�_�C�A���O�v�Ƃ����{�^����z�u�������C���E�C���h�E�����܂��B�{�^�����N���b�N����ƁAdialog()���Ăяo���ă��[�_���_�C�A���O�����A�I�����ʂ��^�C�g���o�[�ɕ\�����܂��B
�@���[�_���_�C�A���O�{�b�N�X���Ăяo������
case 0: /* �u�_�C�A���O�v�{�^�� */ dwMRes=dialog(); /* �_�C�A���O�Ăяo�� */ wsprintf(lpszStr,"%d��I��",dwMRes); SetWindowText(hwnd,lpszStr); break;