Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 119


int i;

char cMyMessage[80];

RECT Rect;

int nBorders[3];

switch(Message)

case WMJNITDIALOG: // Set states of controls

SendDIgItemMessage(hDlg, nRadioButtonld, BM^SETCHECK,

BST_CHECKED, 0);

for(i - IDC_CHECKBOXI; i <= IDC_CHECKBOX3; i++) if(uCheckBoxesState[i - 208])

SendDlgItemMessage(hDlg, i, BM_SETCHECK, BST_CHECKED, 0); GetClientRect(hDIg, &Rect); nBorders[0] = Rect.right / 3; nBorders[l]-Reel.right/3 * 2; nBorders[2] = -1; SendDlgItemMessage(hDlg, IDC_STATUSBAR, SB_SETPARTS, 3,

(LPARAM) nBorders); return TRUE; case WM__COMMAND: switch(LOWORD(wParam))

case IDCJIADIOBUTTONI: case IDC_RADIOBUTTON2: case IDC_RADIOBUTTON3:

sprintf(cMyMessage,"RadioButton%d", LOWORD(wParam) - 203);

SendDlgItemMessage(hDlg,IDC_STATUSBAR,SB_SETTEXT, (WPARAM) 0, (LPARAM) cMyMessage);

139

CheckMenuRadioItem(GetSubMenu(GetSubMenu(GetMenu(hWnd), 1),  0), IDM_RadioButtonl,IDM_RadioButton3, LOWORD(wParam) - 102, MF_BYCOMMAND); return FALSE; caseIDC_CHECKBOXl: case IDC_CHECKBOX2: case IDC_CHECKBOX3:

sprintf(cMyMessage,"CheckBox%d", LOWORD(wParam) - 207); SendDlgItemMessage(hDlg,IDC_STATUSBAR,SB_SETTEXT,

(WPARAM) 1, (LPARAM) cMyMcssage); i = LOWORD(wParam) - 208; uCheckBoxesStatc[i] = uChcckBoxesStale[i] == MF_CHECKED ?

MFJJNCHECKED : MF_CHECKED;

CheckMenuttem(GetSubMenu(GetSubMenu(GetMenu(hWnd), I), 1), LOWORD(wParam) - 103, uCheckBoxesStatc[i]); return FALSE; caseIDC_BUTTONl:

SendDlgItemMessage(hDlg, IDC_STATUSBAR, SB_SETTEXT, (WPARAM) 2, (LPARAM) "PushButton"); return TRUE; case IDC_BUTTON2; // Save the state of RadioButtons

i = IDC_RADIOBUTTON 1; while(!SendDlgItemMessage(hDlg, i, BM_GETCHECK, 0, 0))

i++;

nRadioButtonld = i; // Save the state of CheckButtons

for(i = IDC_CHECKBOXl; i <= IDC_CHECKBOX3; i++) uCheckBoxesState[i - 208] = SendDlgItemMessage(hDlg, i, BM_GETCHECK, 0, 0) == 0 ? MFJJNCHECKED : MF_CHECKED; EndDialog(hDlg,0); return TRUE; } break;

} return FALSE;

Отличия, внесенные в эту функцию, весьма невелики. Во-первых, строка состояния делится на три панели, и, во-вторых, каждый кластер объектов управления отображает сообщения в своей панели. Как видите, уважаемый читатель, ничего сложного здесь нет. Вид диалогового окна, создаваемого программой, показан на рис. 12.




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



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