Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Инициализация списка и выбор элементов

Rusa


Инициализация списка и выбор элемент 141p158b ов



Поскольку при создании список не содержит элемент 141p158b ов, его необходимо ини­циализировать при первом отображении содержащего его диалога. Это довольно просто, поскольку при активизации диалога его оконная функция получает сообще­ние WM INITDIALOG DialogFunc

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

SendDlgItemMessage hdwnd ID LB LB ADDSTRING

0,(LPARAM)" ");

SendDlgltemMessage(hdwnd,ID_LB1,LB_ADDSTRING,

0,(LPARAM)" ");

SendDlgltemMessage(hdwnd,ID_LB1,LB_ADDSTRING,

0,(LPARAM)" ");

SendDlgltemMessage(hdwnd,ID_LB1,LB_ADDSTRING,

LPARAM)"Виноград");

return

Этот фрагмент 141p158b программы заносит в список элемент 141p158b ы Яблоко, Апельсин, Груша и Виноград. Каждый вызов функции SendDlgItemMessage SendDlgItemMessage LB ADDSTRING lParam LPARAM). В данном случае строки добавляются в список в том порядке, в котором передаются. В зависимости от типа списка добавляемые элемент 141p158b ы могут сортироваться в алфавитном порядке. Если количество включаемых в список элемент 141p158b ов превышает число элемент 141p158b ов, которые можно отобразить в списке, к окну списка автоматически добавляется линейка прокрутки.



Выбор элемент 141p158b ов списка. После инициализации список готов к работе с ним. Существует два способа эыбора элемент 141p158b ов в списке. Во-первых, это можно сделать двойным щелчком мыши на выбираемом элемент 141p158b е. В этом случае оконной функции диалога будет направлено сообщение WM COMMAND LOWORD wParam a HIWORD wParam LBN DBLCLK. Двойной щелчок мыши обычно означает, что программа должна обработать выбор сразу же. Во-вторых, пользователь может просто изменить выбранный элемент 141p158b списка, исполь­зуя клавиатуру или мышь. В этом случае сообщение в программу не посылается, выбранный элемент 141p158b запоминается, так что программа может запросить у списка номер этого элемент 141p158b а. Оба подхода иллюстрируются в приведенном ниже примере.

Если выбран какой-нибудь элемент 141p158b списка, можно определить его номер, послав списку сообщение LB GETCURSEL. В ответ список возвратит номер выбранного элемент 141p158b а. Если никакой элемент 141p158b не выбран, список возвращает LB ERR

Чтобы продемонстрировать процедуру обработки выбора элемент 141p158b ов списка, добавьте во вложенный оператор switch DialogFunc следующий фрагмент 141p158b .

case ID LB1: // Обработка сообщения LBN DBLCLK

// Если это, конечно, LBN DBLCLK

if HIWORD wParam LBN DBLCLK



return

case IDD SELFRUIT // Нажата кнопка "Выбери фрукт"

// Windows

}

return msg.wParam;

// Следующая функция вызывается ОС Windows и получает

LRESULT CALLBACK WindowFunc(HWND hwnd,

UINT message,

WPARAM wParam,

LPARAM lParam)

break;

case WM_DESTROY: /* завершение программы */ 

PostQuitMessage(0);

break;

default: // Все сообщения, не обрабатываемые

// в данной функции, направляются

// на обработку по умолчанию

return DefWindowProc(hwnd, message,

wParam, lParam);

}

return 0;

}

BOOL CALLBACK DialogFunc(HWND hdwnd,

UINT message,

WPARAM wParam,

LPARAM lParam)

return 1;



case IDD_SELFRUIT: // " "

i=SendDlgItemMessage(hdwnd,ID_LB1,

LB_GETCURSEL,

0, 0L);

if( i > -1)

sprintf

(str,

"Индекс выбранного элемент 141p158b а %d",

i);

else

sprintf(str," ");

MessageBox(hdwnd,str," ",

MB_OK);

return 1;

}

case WM_INITDIALOG: //

SendDlgItemMessage(hdwnd, ID_LB1,

LB_ADDSTRING,

0, (LPARAM)" ");

SendDlgItemMessage(hdwnd, ID_LB1,

LB_ADDSTRING,

0, (LPARAM)" ");

SendDlgItemMessage(hdwnd, ID_LB1,

LB_ADDSTRING,

0, (LPARAM)" ");

SendDlgItemMessage(hdwnd, ID_LB1,

LB_ADDSTRING,

0, (LPARAM)" ");

return 1;

return 0;

}




Document Info


Accesari: 975
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )