Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
William BJ
3 / 3 / 0
Регистрация: 11.10.2017
Сообщений: 12
1

Диалоговые окна

13.10.2017, 20:52. Просмотров 441. Ответов 10
Метки нет (Все метки)

Здравствуйте. Подскажите, пожалуйста:
1). можно ли немодальное диалоговое окно отобразить на поверхности основного окна как, например, элемент управления? Т. е. чтобы оно отображалось именно на его поверхности?
2). можно ли при создании диалога, описанном в файле с ресурсами, установить его размер и координаты именно в момент создания, а не указывать их в самом файле ресурсов?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2017, 20:52
Ответы с готовыми решениями:

Диалоговые окна
Я новичок в Win32 API, как впрочем и в С++. У меня уже который час не...

Диалоговые окна
у меня есть несколько диалоговых окон, а функций работы с ними -одна и что бы...

Диалоговые окна на WinAPI
Не могу создать диалоговое окно. Пример из книги ганеева не компилируется. Если...

Не создаются диалоговые окна
Опять я со своей змейкой :) Хочу добавить диалоговые окна в программу. Вроде бы...

Модальные диалоговые окна ООП
Добрый день. Подскажите пожалуйста, как реализовать модальные диалоговые окна в...

10
GoshaM
202 / 92 / 34
Регистрация: 02.06.2016
Сообщений: 217
18.10.2017, 09:45 2
1) Можно, поставьте свойства WS_CHILD (WS_CHILDWINDOW), а все лишнее WS_CAPTION, WS_MAXIMIZEBOX, WS_MINIMIZEBOX, WS_SIZEBOX, WS_SYSMENU и текст самого заголовка окна уберите.
2) Можно функцией MoveWindow
1
Kukstyler
755 / 484 / 157
Регистрация: 02.04.2009
Сообщений: 2,152
18.10.2017, 10:28 3
William BJ, если не ошибаюсь, если главное окно не MDI, то даже если Вы прилепите второе окно на первое, при его фокусировании (прилепленного) у главного окна titlebar поменяет цвет как не фокусированный.
1
William BJ
3 / 3 / 0
Регистрация: 11.10.2017
Сообщений: 12
18.10.2017, 17:05  [ТС] 4
GoshaM, Спасибо, попробовал с WS_CHILD + WS_BORDER, DS_CONTROL и WS_CLIPCHILDREN. Получилось)
Kukstyler, спасибо за предупреждение, не подумал об этом.

Добавлено через 7 минут
Kukstyler, DS_CONTROL, как я понял, используется именно для этого:
DS_CONTROL - Создает диалоговое окно, которое работает также как дочернее окно другого диалогового окна, очень похоже на страницу в окне свойств. Этот стиль позволяет пользователю перемешаться при помощи клавиши TAB среди органов управления окна дочернего блока диалога, использовать его клавиши - ускорители и так далее.
2
oleg rus
6 / 6 / 0
Регистрация: 13.05.2012
Сообщений: 390
Завершенные тесты: 2
20.10.2017, 23:13 5
А как создать окно со стилем WS_EX_TOOLWINDOW ?
Сделал так :
C++
1
hWindow1 = CreateWindowEx(WS_EX_TOOLWINDOW, L"HELLO", L"HELLO", WS_OVERLAPPEDWINDOW|WS_CHILD, 0, 40, 300, 400, NULL, NULL, hInstance, NULL);
Ничего не отображается.
0
William BJ
3 / 3 / 0
Регистрация: 11.10.2017
Сообщений: 12
20.10.2017, 23:39  [ТС] 6
oleg rus, попробуй добавить WS_VISIBLE
0
oleg rus
6 / 6 / 0
Регистрация: 13.05.2012
Сообщений: 390
Завершенные тесты: 2
20.10.2017, 23:44 7
William BJ, Всё равно не чего не отображается. Может нужно заполнить класс WNDCLASSEX и использовать функцию RegisterClassEx?
0
William BJ
3 / 3 / 0
Регистрация: 11.10.2017
Сообщений: 12
20.10.2017, 23:53  [ТС] 8
oleg rus, второй параметр мне не очень понятен. Он должен содержать идентификатор элемента или имя зарегистрированного окна. Попробуйте "dialog". Также стиль WS_CHILD, когда отсутствует дескриптор родительского окна.
0
oleg rus
6 / 6 / 0
Регистрация: 13.05.2012
Сообщений: 390
Завершенные тесты: 2
20.10.2017, 23:58 9
William BJ, Нее всё по старому.
0
William BJ
3 / 3 / 0
Регистрация: 11.10.2017
Сообщений: 12
21.10.2017, 00:01  [ТС] 10
oleg rus,
C++
1
2
3
4
5
6
HWND h = CreateWindowEx(
            0, WC_DIALOG,
            "HELLO", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
            0, 40, 300, 400,
            NULL, NULL, hThisInstance, NULL
        );
1
oleg rus
6 / 6 / 0
Регистрация: 13.05.2012
Сообщений: 390
Завершенные тесты: 2
21.10.2017, 18:55 11
William BJ, Да так вроде работает,но мне надо чтобы окно было дочерним,я ему устанавливаю стиль WS_CHILD а оно почему-то не отображается.
0
21.10.2017, 18:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2017, 18:55

Получить цвет пикселя из неактивного окна, перекрытого другими окнами окна
Можно ли получить цвет пикселя из неактивного или перекрытого другими окна?...

Как получить координаты окна в относительно его родительского окна?
А то походу GetWindowRect(Window, &WindowRectangle); относительно экрана...

Как получить размеры клиентской области окна-родителя в функции дочернего окна?
задание такое: имеется дочернее окно,которое "убегает" от курсора мыши в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru