ALTE DOCUMENTE
|
|||||
О всех соб& 14314b118o #1099;тиях, происходящих в диалоге, передаются сообщения в функцию, связанную с этим диалогом (а не в функцию главного окна). Приведенная ниже функция диалога обрабатывает сообщения, связанные с диалогом MYDB:
BOOL CALLBACK DialogFunc (HWND hdwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
}
return 0;
}
DialogFunc() WM_COMMAND LOWORD(wParam)
DialogFunc() IDCANCEL, и диалог завершится посредством вызова функции API EndDialog() IDCANCEL является стандартным идентификатором, определенным в Windows.h.
EndDialog()
BOOL EndDialog(HWND hwnd, int nStatus);
hwnd является дескриптором окна диалога, a nStatus DialogBox() EndDialog()
Демонстрация модального диалога
#include <Windows.h>
#include <String.h>
#include <Stdio.h>
#include "Mydialog.h"
LRESULT CALLBACK WindowFunc(HWND,UINT,WPARAM,LPARAM); BOOL CALLBACK DialogFunc(HWND,UINT,WPARAM,LPARAM);
char szWinName[] = " "; //
HINSTANCE hInst;
int WINAPI WinMain(HINSTANCE hThisInst,
HINSTANCE hPrevInst,
LPSTR lpszArgs,
int nWinMode)
}
return msg.wParam;
}
Следующая функция вызывается операционной системой
// Windows и получает в качестве параметров сообщения // из очереди сообщений данного приложения
LRESULT CALLBACK WindowFunc (HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
break;
case WM_DESTROY: // Завершение программы
PostQuitMessage(0);
break;
default:
// Все сообщения, не обрабатываемые в данной
// функции, направляются на обработку по
// умолчанию
return DefWindowProc(hwnd, message,
wParam, lParam);
}
return 0;
}
BOOL CALLBACK DialogFunc (HWND hdwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
}
return 0;
}
hInst
WinMain() WindowFunc() WinMain()
|