|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.02.2023, 14:28 | #1 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Диалоговые окна. вывод текста в static функцией TextOut.
Здравствуйте! Возможно ли в стандартный объект windows "static" выводить текст функцией TextOut()?
Если да, то как и вообще возможно ли сделать следующее, допустим, у меня есть listbox со списком параметров выравнивания: по левому краю, по правому краю, по центру, при выборе одного из этих пунктов я хочу в объекте "static" отобразить пример результата, вывести некий текст для визуализации того, что должно получиться в итоге при выводе текста. Короче говоря если я выбрал "Выравнивание по центру", то нужно чтобы текст в объекте статик был по центру. Хочется верить, что объяснил довольно ясно. P.S. Возможно, здесь лучше использовать однострочный "edit". |
23.02.2023, 14:39 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
А не проще у окна static устанавливать флаги SS_LEFT/SS_CENTER/SS_RIGHT, вместо перерисовки текста вручную?
|
23.02.2023, 14:43 | #3 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Как это делать?
|
23.02.2023, 14:49 | #4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Получаете старый стиль Static
Код:
Код:
Код:
Код:
Последний раз редактировалось macomics; 23.02.2023 в 15:37. |
23.02.2023, 14:55 | #5 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Может быть так было бы проще, но у меня текст не выводится вообще. Или имеется ввиду выводить текст при помощи функции SetWindowText()... Хотя так тоже ничего не выводится.
|
23.02.2023, 14:57 | #6 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Да. Достаточно использовать Static как обычное окно и не рисовать ничего вручную. Устанавливать текст в окне через SetWindowText
Тогда может быть дело не в этих функциях, а в самом Static. Вы его отобразили (WS_VISIBLE) или может он не по тем координатам? Чтобы увидеть Static добавьте к его стилю бордюр WS_BORDER Последний раз редактировалось macomics; 23.02.2023 в 14:59. |
23.02.2023, 15:05 | #7 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Да, конечно.
Какие координаты указывал при создании шаблона диалогового окна те и остались, ничего не перемещал. Тоже самое, этот стиль я указал при создании класса. |
23.02.2023, 15:08 | #8 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Код:
|
23.02.2023, 15:35 | #9 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Так вы обнулили все остальные стили у Static. Я зачем указал, что старые стили надо сначала получить и сбросить флаги SS_LEFT, SS_CENTER и SS_RIGHT перед тем как добавить один из них и установить его.
SetWindowLong(hWnd, GWL_STYLE, wndStyle) устанавливает (изменяет) значение, которое передавалось при создании окна как wndStyle (третий параметр CreateWindow) Последний раз редактировалось macomics; 23.02.2023 в 15:41. |
23.02.2023, 21:41 | #10 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Код:
Dialog3.png Странно, но, если я диалоговое окно перетаскиваю, то объект "static" просто исчезает. Кто отвечает за перерисовку в диалоговом окне? Разве не ОС.... Последний раз редактировалось apofioz; 23.02.2023 в 22:22. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Canvas.TextOut вывод текста от средины к краям | Женя32 | Общие вопросы Delphi | 9 | 07.10.2019 20:31 |
Зависают диалоговые окна | Shkolota | Windows | 14 | 01.09.2013 12:00 |
Не редактируются диалоговые окна -_- | Alovar | Visual C++ | 0 | 29.11.2011 21:07 |
Диалоговые окна. | AnnJoy | Помощь студентам | 0 | 15.06.2011 19:16 |
Вывод строки текста в Static Text через код | skiffter | Visual C++ | 4 | 01.10.2010 17:08 |