Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
43-70_otvety_na_teplogo.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
87.53 Кб
Скачать

48,В. Функции для изменения текста в дочерних окнах на примере кнопок.

Можно изменить текст кнопки (или любого другого окна) с помощью вызова функции SetWindowText :

SetWindowText(hwnd, pszString);

где hwnd — это описатель окна, в котором изменяется текст, а pszString — это указатель на оканчивающуюся нулем строку. Для обычного окна этот текст — текст строки заголовка. Для кнопок управления — это текст, который выводится на экран вместе с кнопкой.

Имеется возможность получить текущий текст окна:

iLength = GetWindowText(hwnd, pszBuffer, iMaxLength);

Параметр iMaxLength задает максимальное число символов для копирования в буфер, который определяется указателем pszBuffer. Возвращаемым значением функции является длина скопированной строки. Можно подготовить свою программу для приема строки конкретной длины, вызвав сначала функцию:

iLength = GetWindowTextLength(hwnd);

49. Статические дочерние окна. Их назначение и создание в окне приложения. Стили статических окон.

Статическое окно «static» представляет собой прямоугольную область, в которой пользователь может выводить текст или bitmap. Это совершенно обычные дочерние окна. Они не получают сообщения от клавиатуры и не реагируют на мышь. Они не посылают сообщений WM_COMMAND обратно родительскому окну. Они служат дополнительным устройством вывода. Когда вы перемещаете мышь или щелкаете мышью над статическим дочерним окном, дочернее окно обрабатывает сообщение WM_NCHITTEST и возвращает в Windows значение HTTRANSPARENT. Это заставляет Windows послать то же сообщение WM_NCHITTEST расположенному внизу окну, которым обычно является родительское окно. Родительское окно, как правило, передает сообщение в DefWindowProc, где оно преобразуется в сообщение мыши рабочей области.

Вы можете создать статическое дочернее окно управления, используя класс окна "static" при вызове функции CreateWindow.

Можно задать 6 основных стилей: SS_BLACKRECT

SS_GRAYRECT

SS_WHITERECT - соответственно прямоугольники с заданным цветом

SS_BLACKFRAME

SS_GRAYFRAME

SS_WHITEFRAME – рамки с заданным цветом, без закрашивания прямоугольника.

SS_ETCHEDHORZ, SS_ETCHEDVERT или SS_ETCHEDFRAME так же являются стилями для создания рамки с тенью.

Статический класс также включает в себя три стиля текста: SS_LEFT, SS_RIGHT и SS_CENTER. Они предназначены для выравнивания текста соответственно по левому краю, по правому краю и по центру. Статический класс также содержит стили окна SS_ICON и SS_USERITEM. Однако, эти стили не имеют смысла при использовании в качестве дочерних окон управления.

50. Использование статических окон как устройств вівода текста или картинок.

Статическое окно «static» представляет собой прямоугольную область, в которой пользователь может выводить текст или bitmap. Для стилей:

SS_BLACKRECT SS_BLACKFRAME

SS_GRAYRECT SS_GRAYFRAME

SS_WHITERECT SS_WHITEFRAME

поле текста окна функции CreateWindow игнорируется. Статический класс также включает в себя три стиля текста: SS_LEFT, SS_RIGHT и SS_CENTER. Они предназначены для выравнивания текста соответственно по левому краю, по правому краю и по центру.

Текст задается в параметре текста окна функции CreateWindow, и позднее он может быть изменен с помощью функции SetWindowText. Когда

оконная процедура кнопки управления статического класса выводит на экран этот текст, она использует функцию DrawText с параметрами DT_WORDBREAK, DT_NOCLIP и DT_EXPANDTABS. Текст помещается внутрь прямоугольника дочернего окна.

Фоном дочерних окон этих трех стилей обычно является COLOR_BTNFACE, а самого текста — COLOR_WINDOWTEXT.

Вы можете обрабатывать сообщения WM_CTLCOLORSTATIC для изменения цвета текста с помощью вызова функции SetTextColor, а для изменения цвета фона текста — с помощью вызова функции SetBkColor, возвращая при этом описатель кисти фона.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]