92978b58

Приложение CHECK - 3


// Обычный переключатель hWndButton3 = WinCreateWindow (hWnd, WC_BUTTON , "(3) CheckBox", WS_VISIBLE | BS_CHECKBOX, 0, 0, 0, 0, hWnd, HWND_TOP , BTN3_ID, NULL, NULL); return FALSE; }

// Изменяем размер и расположение органов // управления case WM_SIZE : { WinSetWindowPos (hWndButton1, HWND_TOP , 10, 10, 200, 50, SWP _SIZE | SWP_MOVE | SWP_ZORDER );

WinSetWindowPos (hWndButton2, HWND_TOP , 10, 70, 200, 50, SWP _SIZE | SWP_MOVE | SWP_ZORDER );

WinSetWindowPos (hWndButton3, HWND_TOP , 10, 110, 200, 50, SWP _SIZE | SWP_MOVE | SWP_ZORDER );

// Перерисовываем окно приложения WinInvalidateRect (hWnd, NULL, TRUE); return 0; }

case WM_PAINT : { // Получаем пространство отображения hps = WinBeginPaint (hWnd, NULLHANDLE, &rec);

// Закрашиваем область, требующую обновление WinFillRect (hps, &rec, CLR_WHITE);

// Возвращаем пространство отображения WinEndPaint (hps); return 0; }

case WM_ERASEBACKGROUND : return(MRFROMLONG(1L));

// Это сообщение приходит при изменении // состояния переключателей case WM_CONTROL : { switch (SHORT1FROMMP (mp1)) { // Если сообщение пришло от автоматического // переключателя, получаем и сохраняем его // текущее состояние case BTN2_ID: { fButton2Checked = (BOOL) WinSendMsg (hWndButton2, BM_QUERYCHECK, MPFROMSHORT(0), NULL); break; }

// Если сообщение пришло от обычного // переключателя, изменяем его состояние // и сохраняем новое состояние // в переменной fButton3Checked case BTN3_ID: { if(fButton3Checked) WinSendMsg (hWndButton3, BM_SETCHECK, MPFROMSHORT(0), NULL);

else WinSendMsg (hWndButton3, BM_SETCHECK, MPFROMSHORT(1), NULL);

fButton3Checked = ~fButton3Checked; break; }

default: break; } return 0; }

// Когда пользователь нажимает кнопку, // определяем и сохраняем состояние // обоих переключателей case WM_COMMAND : { switch (COMMANDMSG(&msg) -> cmd) { case BTN1_ID: { sprintf (szBuf, "Состояние переключаталей:\n" "(3) третий - %d\n(2) второй - %d", fButton3Checked ? 1 : 0, fButton2Checked ? 1 : 0);

WinMessageBox (HWND_DESKTOP, hWnd, szBuf, "Состояние переключателей", 0, MB_INFORMATION | MB_APPLMODAL | MB_MOVEABLE | MB_OK); break; }

default: break; } return 0; }

default: return(WinDefWindowProc (hWnd, msg, mp1, mp2)); } }




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