Операционная система Microsoft Windows 3.1 для программиста -том 1


Приложение TMCLOCK - часть 3


Функция MoveWindow определяет новое расположение и размеры окна:

BOOL WINAPI MoveWindow(HWND hwnd, int nLeft, int nTop, int nWidth, int nHeight, BOOL fRepaint);

Первый параметр функции (hwnd) указывает идентификатор перемещаемого окна.

Второй параметр (nLeft) указывает координату левой границы окна, третий (nTop) - координаты нижней границы окна.

Четвертый (nWidth) и пятый (nHeight) параметры определяют соответственно ширину и высоту окна.

Последний, шестой параметр (fRepaint) - флаг, определяющий, надо ли перерисовывать окно после его перемещения. Если значение этого параметра равно TRUE, функция окна после перемещения окна получит сообщение WM_PAINT. Если указать это значение как FALSE, никакая часть окна не будет перерисована.

После перемещения окна оно отображается (уже на новом месте). Далее запускается обычный цикл обработки сообщений.

Исходные тексты функции главного окна и функции таймера приведены в листинге 7.5.

Листинг 7.5. Файл tmclock\wndproc.cpp

#define STRICT #include <windows.h> #include <time.h>

// Идентификатор таймера, который используется // для измерения времени #define CLOCK_TIMER 1

// Прототип функции таймера void CALLBACK _export TimerProc(HWND, UINT, UINT, DWORD);

// Переменная для хранения идентификатора таймера, // который используется для выдачи звукового сигнала int nBeepTimerID;

// Внешние переменные extern TEXTMETRIC tm; extern int cxChar, cyChar;

// ===================================== // Функция WndProc // =====================================

LRESULT CALLBACK _export WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps;

switch (msg) { case WM_CREATE: { // Создаем таймер, посылающий сообщения // функции окна примерно раз в секунду SetTimer(hwnd, CLOCK_TIMER, 1000, NULL);

// Создаем таймер, который периодически // раз в секунду посылает сообщения в // функцию таймера TimerProc nBeepTimerID = SetTimer(hwnd, 0, 1000, (TIMERPROC)TimerProc);

hdc = GetDC(hwnd);

// Выбираем шрифт с фиксированной шириной букв SelectObject(hdc, GetStockObject(SYSTEM_FIXED_FONT));




Начало  Назад  Вперед



Книжный магазин