Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Стиль кнопки






· BS_PUSHBUTTON equ 0

· BS_DEFPUSHBUTTON equ 1

· BS_CHECKBOX equ 2

· BS_AUTOCHECKBOX equ 3

· BS_RADIOBUTTON equ 4

· BS_GROUPBPX equ 7

· BS_LEFTTEXT equ 20H

 

В программе стиль кнопки определяется следующим образом:

STYLBTN equ WS_CHILD+BS_DEFPUSHBUTTON+WS_VISIBLE+S_TABSTOP

 

Некоторые API-функции

  1. Функция MessageBoxA:

 

Создает и отображает диалог, содержащий указанное сообщение и заголовок, а также предопределенные пиктограммы и текстовые кнопки.

 

int MessageBox(

HWND hWnd, // дескриптор окна

LPCTSTR lpText, // адрес строки текста диалога

LPCTSTR lpCaption, // адрес заголовка диалога

UINT uType // стиль окна диалога

);

 

2. Функция GetModuleHandleA:

Возвращает дескриптор приложения.

 

HMODULE GetModuleHandle(

LPCTSTR lpModuleName // адрес приложения

);

 

3. Функция LoadCursorA:

Загружает указанный курсор из исполняемого файла, связанного с экземпляром приложения или файла ресурсов.

 

HCURSOR LoadCursor(

HINSTANCE hInstance, // дескриптор экземпляра приложения

LPCTSTR lpCursorName //строка с именем курсора или идентификатор ресурса

);

 

4. Функция LoadIconA:

 

Загружает указанную пиктограмму из исполняемого файла, связанного с экземпляром приложения, или файла ресурсов.

 

HICON LoadIcon(

HINSTANCE hInstance, // дескриптор экземпляра приложения

LPCTSTR lpIconName // строка с именем курсора или идентификатор ресурса

);

 

5. Функция RegisterClassA:

 

Регистрирует класс окна, атрибуты которого определены в структуре WndClass, для последующего использования. Класс окна может регистрироваться только один раз.

 

ATOM RegisterClass(

CONST WNDCLASS *lpWndClass // адрес структуры окна

);

 

6. Функция CreateWindowExA:

 

Создает перекрытое, всплывающее или дочернее окно с расширенным стилем.

 

HWND CreateWindowEx(

DWORD dwExStyle, // расширенный стиль окна

LPCTSTR lpClassName, // спецификация имени класса окна

LPCTSTR lpWindowName, // заголовок окна

DWORD dwStyle, // стиль окна

int x, // горизонтальная позиция окна

int y, // вертикальная позиция окна

int nWidth, // ширина окна

int nHeight, // высота окна

HWND hWndParent, // дескриптор родительского, дочернего окна

HMENU hMenu, // дескриптор меню

HINSTANCE hInstance, // дескриптор приложения

LPVOID lpParam // pointer to window-creation data

);

Параметры dwExStyle:

Стиль Описание
WS_EX_ACCEPTFILES Определяет, что окно этого стиля поддерживает drag-drop для файлов.
WS_EX_APPWINDOW Forces a top-level window onto the taskbar when the window is visible.
WS_EX_CLIENTEDGE Определяет, что окно имеет границу с притопленным краем.
WS_EX_CONTEXTHELP Отображает кнопку с вопросительным знаком в окне заголовка, по нажатию на которую открывается раздел контекстно-зависимой справки.
WS_EX_CONTROLPARENT Позволяет пользователю переключаться между дочерними окнами по клавише Tab.
WS_EX_DLGMODALFRAME Создает окно, которое имеет двойную границу.
WS_EX_LEFT Окно имеет свойство по умолчанию: " выровненные по левой границе".
WS_EX_LEFTSCROLLBAR Если язык оболочки - Иврит, Арабский, или другой язык, читающийся справа налево, вертикальная полоса прокрутки рассположена слева.
WS_EX_LTRREADING Текст в окне рассположен слева направо.
WS_EX_MDICHILD Создаёт дочернее MDI окно.
WS_EX_NOPARENTNOTIFY Определяет, что дочернее окно не посылает сообщение WM_PARENTNOTIFY. destroyed.
WS_EX_OVERLAPPEDWINDOW Совмещает стили WS_EX_CLIENTEDGE и WS_EX_WINDOWEDGE.
WS_EX_PALETTEWINDOW Совмещает стили WS_EX_WINDOWEDGE, WS_EX_TOOLWINDOW и WS_EX_TOPMOST.
WS_EX_RIGHT Окно имеет свойство " выравнивание по правому краю". Этот стиль имеет эффект только, если язык оболочки - Иврит, Арабский, или другой язык, который читается справа налево.
WS_EX_RIGHTSCROLLBAR Полоса прокрутки находится в правой части окна.
WS_EX_RTLREADING Если язык оболочки - Иврит, Арабский, или другой язык, читающийся справа налево, текст в окне рассположен справа налево.
WS_EX_STATICEDGE Создает окно с трехмерным стилем границы.
WS_EX_TOOLWINDOW Создает окно, используемое как перемещаемая панель инструментов.
WS_EX_TOPMOST Создаёт окно, отображаемое поверх всех остальных окон.
WS_EX_TRANSPARENT Specifies that a window created with this style should not be painted until siblings beneath the window (that were created by the same thread) have been painted. The window appears transparent because the bits of underlying sibling windows have already been painted.
WS_EX_WINDOWEDGE Определяет, что окно имеет границу с приподнятым краем.

 

Параметры dwStyle:

 

Стиль Описание
WS_BORDER Создаёт окно с «тонкой» границей.
WS_CAPTION Создаёт окно, имеющее заголовок.
WS_CHILD Создаёт дочернее окно.
WS_CHILDWINDOW Аналогично WS_CHILD.
WS_CLIPCHILDREN Исключает область, занятую дочерними окнами, когда прорисовка происходит в пределах родительского окна
WS_CLIPSIBLINGS Отсекает дочерние окна относительно друг друга.
WS_DISABLED Создаёт неактивное, по умолчанию, окно.
WS_DLGFRAME Создаёт окно с границей диалогового окна (не имеет заголовка).
WS_GROUP Определяет первый элемент в группе средств управления.
WS_HSCROLL Создаёт окно с горизонтальной полосой прокрутки.
WS_ICONIC Создаёт «минимизированное» окно.
WS_MAXIMIZE Создаёт окно, развёрнутое на весь экран.
WS_MAXIMIZEBOX Создаёт окно, имеющее кнопку «развернуть».
WS_MINIMIZE Аналогично WS_ICONIC.
WS_MINIMIZEBOX Создаёт окно, имеющее кнопку «свернуть».
WS_OVERLAPPED Создает перекрытое окно.
WS_OVERLAPPEDWINDOW Создает перекрытое окно со стилями: WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, WS_MAXIMIZEBOX.
WS_POPUP Создает всплывающее окно.
WS_POPUPWINDOW Создает всплывающее окно со стилями: WS_BORDER, WS_POPUP, WS_SYSMENU.
WS_SIZEBOX Создаёт окно с " расстягивающейся" границей.
WS_SYSMENU Создаёт окно имеющее системное меню в строке заголовка.
WS_TABSTOP Определяет элемент, получающий фокус при нажатии Tab.
WS_THICKFRAME Аналогично WS_SIZEBOX.
WS_TILED Аналогично WS_OVERLAPPED.
WS_TILEDWINDOW Аналогично WS_OVERLAPPEDWINDOW.
WS_VISIBLE Создаёт окно, видимое по умолчанию.
WS_VSCROLL Создаёт окно с вертикальной полосой прокрутки.

 

 

7. Функция ShowWindow:

 

Устанавливает режим отображения заданного окна.

 

BOOL ShowWindow(

HWND hWnd, // дескриптор окна

int nCmdShow // режим отображения окна

);

 

  1. Функция UpdateWindow:

 

Обновляет клиентскую область заданного окна, отправляя ему сообщение WM_PAINT, если область обновления не пуста. Функция отправляет сообщение WM_PAIN напрямую оконной процедуре указанного окна, обходя очередь сообщений приложения. Если область обновления пуста, то сообщение не отправляется.

 

BOOL UpdateWindow(

HWND hWnd // дескриптор окна

);

 

9. Функция GetMessageA:

Извлекает сообщение из очереди сообщений вызывающего потока и помещает его в указанную структуру

 

BOOL GetMessage(

LPMSG lpMsg, // адрес структуры с сообщением

HWND hWnd, // дескриптор окна

UINT wMsgFilterMin, // первое сообщение

UINT wMsgFilterMax // последнее сообщение

);

 

10. Функция TranslateMessageA:

Преобразует сообщения виртуальных клавиш в сообщения о символах.

 

BOOL TranslateMessage(

CONST MSG *lpMsg // адрес структуры сообщения

);

11. Функция DispatchMessageA:

 

Передает сообщение оконной функции.

 

LONG DispatchMessage(

CONST MSG *lpmsg // указатель на структуру с сообщением

);

12. Функция ExitProcess:

 

Завершает процессы и все потоки.

 

 

VOID ExitProcess(

UINT uExitCode // код выхода для всех потоков

);

 

13. Функция PostQuitMessage:

 

Указывает Windows, что поток послал запрос на завершение.

 

VOID PostQuitMessage(

int nExitCode // код возврата

);

 

14. Функция DefWindowProc:

 

Вызывает оконную процедуру по умолчанию для обработки сообщений, которые не обрабатываются приложением.

 

LRESULT DefWindowProc(

HWND hWnd, // дескриптор окна

UINT Msg, // сообщение

WPARAM wParam, // первый параметр сообщения

LPARAM lParam // второй параметр сообщения

);

 

15. Функция SetFocus:

Устанавливает фокус на определенное окно. Окно должно быть связано с вызовом нити очереди сообщений.

HWND SetFocus (

HWND hWnd // дескриптор окна

);

 

16. Функция SendMessage:

 

Функция посылает сообщение окну или окна.м. Функция вызывает процедуру окна и не возвращает значения, пока процедура окна не обработает сообщение.

LRESULT SendMessage(

HWND hWnd, // дескриптор окна

UINT Msg, // сообщение для передачи

WPARAM wParam, // первый параметр сообщения

LPARAM lParam // второй параметр сообщения

);

17. Функция BeginPaint:

Функция готовит окно для рисования и заполнения структуры PAINTSTRUCT информацией о рисовании.

HDC BeginPaint(HWNDhwnd, // дескриптор окна LPPAINTSTRUCTlpPaint// информация о рисовании);

18. Функция EndPaint:

Функция отмечает окончание рисования в окне.

BOOL EndPaint(HWND hWnd, // дескриптор окна CONST PAINTSTRUCT *lpPaint // данные рисования);

19. Функция TextOut:

Функция записывает строку символов в определенную позиция, использую текущий шрифт, цвет фона и цвет текста.

BOOL TextOut(HDC hdc, // дескриптор int nXStart, // x-координата начала int nYStart, // y-координта начала LPCTSTR lpString, // строка символов int cbString

);

20. Функция CreateSolidBrush:

Функция создает логическую кисть, у которой есть определенный цвет.

HBRUSH CreateSolidBrush(COLORREF crColor // значение цвета кисти);

21. Функция SetBkColor:

Функция устанавливает текущий цвет фона значением цвета.

COLORREF SetBkColor(HDC hdc, // дескриптор COLORREF crColor // значение цвета фона);

22. Функция SetTextColor:

The SetTextColor function sets the text color for the specified device context to the specified color.

COLORREF SetTextColor(HDC hdc, // дескриптор COLORREF crColor // цвет текста);

Сообщения ОС Windows

  1. wm_setfocus – установить фокус;
  2. wm_destroy – сообщение приходит при закрытии окна;
  3. wm_create – сообщение приходит при создании окна;
  4. wm_command – выполняются какие-то действия с окном;
  5. wm_settext – послать элементу строку;
  6. wm_gettext – сообщение позволяющее, получить строку;
  7. wm_paint – посылается, когда приложение делает запрос на рисование
  8. wm_seticon – устанавливает окну диалог
  9. wm_initdialog – посылается диалоговому окно до того, как оно будет показано.
  10. wm_rbuttondown – приходит при нажатии на правую кнопку мыши
  11. wm_lbuttondown – приходит при нажатии на левую кнопку мыши

 

Сообщения, посылаемые списку

  1. lb_addstring – добавление строки;
  2. lb_deletestring – удаление строки;
  3. lb_gettext – получение текста выделенного элемента;
  4. lb_getcursel – получение номера выделенного элемента;
  5. lbn_dblclk – проверка на двойное нажатие кнопки мыши;
  6. lb_findstring – поиск строки;
  7. lb_err – ошибка функции SendMessage;
  8. lb_getcount – получение количества элементов в списке.

 

Вопросы для подготовки к сдаче лабораторной работы.

 

  1. Что означает термин API?
  2. Понятие окна в операционной системе Windows.
  3. Визуальные элементы управления в операционной системе Windows.
  4. Каким образом вызываются API-функции?
  5. Какая последовательность создания окон в операционной системе Windows.
  6. Что понимается под термином «сообщение»?
  7. Что такое «очередь сообщений» в операционной системе Windows.
  8. Как необходимо проводить обработку сообщений в операционной системе Windows.
  9. Какие API-функции для работы с окнами вы знаете?
  10. Что означает сообщение WM_PAINT?

 

Лабораторная работа №4

Разработка оконных приложений с использованием ресурсов

 

В операционной системе Windows введено понятие ресурса. Ресурс представляет собой некий визуальный элемент с заданными свойствами, хранящийся в исполняемом файле отдельно от кода и данных, который может отображаться специальными функциями.

Использование ресурсов дает две вполне определенные выгоды:

1. Ресурсы загружаются в память лишь при обращении к ним, тем самым достигается экономия памяти.

2. Свойства ресурсов поддерживаются системой автоматически, не требуя от программиста написания дополнительного кода.

Описание ресурсов хранится отдельно от программы в текстовом файле (rc) и компилируется (res) специальным транслятором ресурсов. В исполняемый файл ресурсы включаются компоновщиком. Транслятором ресурсов в пакете MASM32 является RC.EXE.

 

Язык описания ресурсов

В настоящее время существует большое количество редакторов ресурсов.

Перечислим наиболее употребляемые ресурсы:

· пиктограммы;

· курсоры;

· битовая картинка;

· строка;

· диалоговое окно;

· меню;

· акселераторы.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.