char s[120]-"He освободил в памяти ";
char R[10];
itoa(Dd.R.lO);
strcat(s.R);
strcat(s." байт");
MessageBox(NULL.s. "ClearMem". MBJYSTEMMODAL ) ; }
}
void PrelnitWnd(void) {
GetMemStateO; }
void Finish(HWND hWnd) {
CheckMemC): }
int PostlnitWndCHWND hWnd) { return 0: }
В модуле WndProc.cpp находится оконная процедура, код которой приведен в листинге 10.3.
Листинг 10.3
#include <windows.h> #include "Maiп.h"
LRESULT API ENTRY InputWndProc (HWND hWnd.UINT message.
WPARAM wParam.LPARAM IParam)
{
switch (message) {
case WMJDESTROY: PostQuitMessage(O); break;
Скелетный проект
case WM_CREATE: OnCreate(hWnd. message. wParam. lParam); break: case WM_SIZE: OnSize(hWnd. message. wParam, lParam); break: case WM_COMMAND: OnMenuChWnd. message. wParam. lParam); break; case WM_PAINT: OnPaintChWnd. message. wParam. lParam): return 0; case WMJ1MER: OnTimerChWnd. message. wParam. lParam); return 0: case WM_LBUTT0ND0WN: OnLButtonChWnd. message. wParam. lParam); return 0; case WM_RBUTTONDOWN: OnRButton(hWnd, message. wParam. lParam); return 0; }
return DefWi ndowProc(hWnd.message.wParam.1Param); }
Эта оконная процедура проверяет самые важные сообщения и в зависимости от полученного сообщения запускает те или иные функции, каждая из которых вынесена в отдельный файл. Эти функции обычно содержат минимум кода. Так, обработка сообщения WM_COMMAND в модуле OnMenu.cpp заключается только в вызове диалогового окна при выборе пункта меню 0 программе, как показано в листинге 10.4.
Листинг 10.4
#iпсlüde <windows.h> #include "resource.h" #include "main.h" finclude "../UTILS/utils.h"
//Строка s разделена на подстроки, знаками \п или \t
//Каждая подстрока выводится на экран с новой строки
char s[] - "А. ЕВЧЕНК0. \п ЛЕКЦИИ ПО КОМПЬЮТЕРНОЙ^ ГРАФИКЕ":
void 0nMenu(HWND hWnd.UINT message.WPARAM wParam.LPARAM lParam)
{
switch(L0W0RD(wParam)) {
case PUNCT1: break; case PUNCT2: break; case ABOUT:
TIMESTRING(hWnd.3000.s);//0кнo-влaдeлeц. интервал, строка текста