12. Комбинированные списки, окна редактирования и статические текстовые объекты. (Ответы на вопросы билетов)
Описание файла
Файл "12. Комбинированные списки, окна редактирования и статические текстовые объекты." внутри архива находится в следующих папках: Ответы на вопросы билетов, WinAPI - Ответы на вопросы билетов. PDF-файл из архива "Ответы на вопросы билетов", который расположен в категории "". Всё это находится в предмете "api windows" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "api windows" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
1.Комбинированные списки, окна редактирования и статические текстовые объекты.1. Комбинированные спискиЭтот орган является комбинацией списка и однострочного редактора текста. Например, выбор размерашрифта.А) Создание:hComboBox = CreateWindow("ComboBox", NULL, WS_CHILD | WS_VISIBLE | WS_VSCROLL|CBS_AUTOHSCROLL|CBS_SIMPLE,30,30,200,200,hwnd,(HMENU) ID_LIST, hInst, NULL);2 – заголовок (должен быть NULL)8 – идентификатор родительского окна, куда будет поступать сообщение WM_COMMAND9 – идентификатор спискаБ) Стили:CBS_DROPDOWN – список невидим, пока пользователь не щелкнет по пиктограмме.CBS_DROPDOWNLIST – аналогично, но нет возможности редактированияCBS_AUTOHSCROLL – автоматическая свертка по горизонталиСBS_SIMPLE – всегда виден, под окном однострочного редактора.В) Коды извещенияСписок "combobox" посылает в родительское окно сообщение WM_COMMAND.
Параметр wParamэтого сообщения содержит идентификатор списка. Младшее слово параметра lParam содержитидентификатор окна списка, а старшее - код извещения.CBN_CLOSEUP – список стал невидимымCBN_DROPDOWN – стал видимымCBN_KILLFOCUS (SETFOCUS) – теряет фокус ввода (приобрел)CBN_DBLCLK – Двойной щелчок левой клавишей мыши по строке списка, имеющего стиль CBS_SIMPLE.А так же CBN_EDITCHANGE, CBN_EDITUPDATE, CBN_SELENDOK (выбор строки в списке) CBN_SELCHANGE(изменил выбор)Г) Сообщения для спискаФункция SendMessage, посылающая сообщения списку "combobox", возвращает значение, котороезависит от выполняемой функции или коды ошибок.CB_ADDSTRING - Добавление строки в список.CB_DELETESTRING – Удаление строки из списка.CB_DIR Заполнение списка именами файлов и каталогов, расположенных в текущем каталоге, а такжеименами дисков.2.
Окна редактированияРедактор используется для ввода, редактирования текста и текстовых файлов + можетиспользоваться выделение и работа с буфером.А) Создание (парметры аналогично комбобоксу):hwndEdit = CreateWindow("edit",NULL, WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT,30, 30, 300, 30, hwnd, (HMENU) ID_EDIT, hInst, NULL);Б) Стили:ES_MULTILINE – многострочный редактор текстаES_READONLY – орган управления только для чтенияES_LOWERCASE (UPPER) – преобразование к строчным (заглавным) символам.ES_AUTOV(H)SCROLL – автоматическая свертка по вертикали(горизонтали)ES_CENTER/RIGHT/LEFT –выравнивание текстаES_PASSWORS – отображение * (для пароля).В) Коды извещенияТекстовый редактор посылает в родительское окно сообщение WM_COMMAND с параметром wParam,равным идентификатору редактора.
Младшее слово параметра lParam содержит идентификатор окна,полученный от функции CreateWindow при создании редактора. Старшее слово параметра lParamсодержит код извещения.EN_CHANGE – изменилось содержимое текста в окне редактированияEN_H(V)SCROLL – выполнена свертка текста по горизонтали (вертикали)EN_KILLFOCUS (SETFOCUS)– потерян фокус ввода, получен фокус ввода.Г) Сообщения (С помощью функции SendMessage) можно посылать различные сообщения редактору:Пример: WORD nState; nState = (WORD) SendMessage(hEdit, EM_CANUNDO, 0, 0L);EM_CANUNDO – проверка поддержки отмены последнего действия3.
Статический орган управления (статический текстовый объект)Это окно, создаваемое на базе предопределенного класса "static". Строго говоря, статический органуправления нельзя использовать для управления работой приложения, так как он не воспринимает щелчкимыши и не способен обрабатывать сообщения от клавиатуры. Статический орган управления не посылаетродительскому окну сообщение WM_COMMAND.Когда курсор мыши перемещается над статическим органом управления, Windows посылает функцииокна этого органа сообщение WM_NCHITTEST.
В ответ на это сообщение статический орган возвращаетWindows значение HTTRANSPARENT. В результате Windows посылает сообщение WM_NCHITTESTродительскому окну, лежащему под органом управления.Используется для оформления внешнего вида диалоговых панелей или окон приложения, дляотображения пиктограмм.А) СозданиеHWND hStatic = CreateWindow ("static", NULL, WS_CHILD|WS_VISIBLE|SS_BLACKFRAME, 20, 40, 100, 50, hWnd, (HMENU)-1, hInstance, NULL);2 – текст внутри статического органа; 8 – идентификатор родительского окна9 – так как статический орган управления не посылает сообщения родительскому окну, можно указатьлюбое число – идентификатор статического органаБ) Стили:SS_BLACKFRAME, SS_GRAYFRAME и SS_WHITEFRAME – прямоугольные рамки, внутри не закрашеныSS_BLACKRECT, SS_GRAYRECT и SS_WHITERECT – закрашенные прямоугольники.SS_LEFT, SS_RIGHT, SS_CENTER, SS_LEFTNOWORDWRAP, SS_SIMPLE – для текста.4 – обрезает не поместившийся текст и заменяет ТАВ на пробелы5 – то же, но без замены..