Создание элементов управления на диалоговой форме, страница 3

SendMessage((HWND)GetDlgItem (hWnd, IDC_RADIO1), BM_SETCHECK, 1, 0);

SendMessage((HWND)GetDlgItem (hWnd, IDC_RADIO3), BM_SETCHECK, 1, 0);

SendMessage((HWND)GetDlgItem (hWnd, IDC_RADIO5), BM_SETCHECK, 1, 0);

break;

// Сообщение от элементов диалогового окна

case WM_COMMAND:

switch (LOWORD (wParam))

{

. . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

// Обработка сообщения от первой кнопки

case IDC_RADIO1: MessageBox(hWnd, "Нажата первая кнопка!", "Р-КНОПКА", 

MB_OK );

//для примера – сразу же выключим эту радиокнопку

SendMessage((HWND)lParam, BM_SETCHECK, 0, 0);

break;

10. Если взаимодействие между рамками группировки и элементами в них отсутствует, следует проверить текстовый вид файла ресурсов. Правильный формат описания диалоговой формы и элементов управления на ней на настоящий момент выглядит следующим образом:

/////////////////////////////////////////////////////////////////////////////

// Dialog

PVIEW_DLG DIALOG DISCARDABLE  100, 100, 268, 158

STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

CAPTION "Курсовой проект"

FONT 8, "MS Sans Serif"

BEGIN

LTEXT           "Поле Ввода:",IDC_STATIC,13,7,58,12,SS_CENTERIMAGE

EDITTEXT        PVIEW_COMPUTER,7,21,81,17,ES_AUTOHSCROLL

COMBOBOX    IDC_COMBO1,7,52,82,99,CBS_DROPDOWN | CBS_SORT|WS_VSCROLL |WS_TABSTOP

CONTROL         "Check1",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,7,44,14

CONTROL         "Check2",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,23,50,15

GROUPBOX      "Static1",IDC_STATIC1,91,37,67,52,WS_GROUP

CONTROL         "Radio1",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,97,49,50,13

CONTROL         "Radio2",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,97,65,50,13

GROUPBOX      "Static2",IDC_STATIC2,91,98,67,53,WS_GROUP

CONTROL         "Radio3",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,98,110,42,15

CONTROL         "Radio4",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,98,129,40,16

GROUPBOX      "Static3",IDC_STATIC3,7,69,80,42,WS_GROUP

CONTROL         "Radio5",IDC_RADIO5,"Button",BS_AUTORADIOBUTTON,13,78,44,14

CONTROL         "Radio6",IDC_RADIO6,"Button",BS_AUTORADIOBUTTON,13,93,50,14

END

/////////////////////////////////////////////////////////////////////////////

Синтаксис файла ресурсов, думается, не требует специального объяснения. Достаточно внимательно вчитаться. Для тех же, «кто в танке» рекомендую обратиться к любой книге по начальному программированию в Windows, например Фролов А.В., Фролов Г.В. Операционная система Windows 3.1; БСП том 12.

LIST BOX (СПИСОК ) 

9. Создадим на форме список:

Selection

Количество строк одновременного выбора

Owner draw

Border

Вывести рамку списка

Sort

Сортировка строк по алфавиту

Notify

Разрешено отправлять родителю сообщение WM_COMMAND

Multi-column

В списке множество колонок

Horizontal scroll

Имеется линейка горизонтальной прокрутки

Vertical scroll

Имеется линейка вертикальной прокрутки

No redraw

Запретить автоматическую перерисовку при добавлении строки

Use tabstops

Для столбцов списка использовать технологию табулостопов

Want key input

Disable no scroll

Запретить отключение полос прокрутки

No integral height

10. Управление списком осуществляет следующий программный код (отмечен жирным):

switch (wMsg)

{

// Сообщение об инициализации диалогового окна

case WM_INITDIALOG:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

//Инициализация списка 

//получить дескриптор окна списка

hList1 = GetDlgItem (hWnd, IDC_LIST1);

//заполнить список четырьмя строками (технология аналогична COMBO BOX)

for (InstanceIndex=0; InstanceIndex<4;InstanceIndex++)

            {

            sprintf(szListText,"строка-%d",InstanceIndex);

            ListIndex = SendMessage (hList1, LB_ADDSTRING, 0, (long)szListText);

            }

    SendMessage (hList1, WM_SETREDRAW, TRUE, 0);

break;

// Сообщение от элементов диалогового окна

case WM_COMMAND: