2 / 2 / 0
Регистрация: 27.10.2016
Сообщений: 48

SetWindowLong и Стили

30.11.2016, 18:57. Показов 8850. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется окно:

C++
1
2
3
4
5
6
7
8
9
g1_r1_des = CreateWindowEx(0, "Window1", "Окно 1",
                               WS_CHILD|WS_CLIPSIBLINGS,
                               350,
                               0,
                               1000, 650,
                               firstdes,
                               NULL,
                               hThisInstance,
                               NULL);
сделал смену стиля с WS_CHILD на WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_M INIMIZEBOX|WS_MAXIMIZEBOX|WS_CLIPCHILDRE N чтоб можно было вынести окно за пределы окна родителя, реализация по CheckDlgButton. Проблема в том что окно все равно не выходит за пределы родителя. Если сделать наоборот то тоже самое только CHILD не прилепляется к родителю.

Первоначальное отображение окна
C++
1
2
3
4
5
6
7
8
 case WM_COMMAND:
            switch (LOWORD(wparam))
            {
                case BTN_G1_R1:
                SetWindowPos(g1_r1_des, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); // задаем расположение выше всех окон, остальное по default (настройки  при создании окна)
                ShowWindow(g1_r1_des, SW_SHOWNORMAL); // показываем окно в координатах и размерах по default (настройки  при создании окна)
                UpdateWindow(g1_r1_des);
                break;


Задаем смену стиля по чекбоксу
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
case WM_COMMAND:
        {
            BOOL checked1 = IsDlgButtonChecked(hwnd, ID_CHECKBOX1);
 
            if (LOWORD(wparam) == ID_CHECKBOX1) {
                if (checked1) {
                    CheckDlgButton(hwnd, ID_CHECKBOX1, BST_UNCHECKED);
 
                    SetWindowLong (g1_r1_des,GWL_STYLE,(LONG) WS_CHILD|WS_CLIPSIBLINGS);
                    SetWindowPos(g1_r1_des, HWND_TOP,350, 0, 1000, 650, SWP_SHOWWINDOW);
 
                    UpdateWindow(g1_r1_des);
                }
                else {
                    CheckDlgButton(hwnd, ID_CHECKBOX1, BST_CHECKED);
 
                    SetWindowLong (g1_r1_des,GWL_STYLE,(LONG) WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_CLIPCHILDREN);
                    ShowWindow(g1_r1_des, SW_SHOW);
                    UpdateWindow(g1_r1_des);
                }
            }
 
            break;
        }






Пробывал всяко.. ничего не выходит. Подскажите плизз как открепить его от родительского окна.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2016, 18:57
Ответы с готовыми решениями:

SetWindowLong и GWL_WNDPROC
Надо сменить процедуру дочернего окна, чтобы лучше обрабатывать сообщения (нужна универсальность, WM_COMMAND не достаточно). Однако, если...

SetWindowLong, метод класса третьим параметром
Всем доброе время суток. Необходимо использовать функцию SetWindowLong для замены процедуры дочернего окна. Если вызывать в обычных...

Как сделать активной кнопку сворачивания приложения (используя SetWindowLong)?
У приложения не активна кнопка сворачивания окна, нужно сделать ее обратно активной. говорят, что с помощью SetWindowLong можно поменять...

20
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,839
Записей в блоге: 4
26.04.2021, 01:55
Студворк — интернет-сервис помощи студентам
Последовательность действий:
1.Запускаю программу.
2. Жду открытие блокнота, сначала он открывается в нормальном виде.
3. Я сам включаю другое окно чтобы он не был на переднем плане.
4. Далее жду и получается блокнот без рамки закрыть на крестик его нельзя но хотя бы работает. Честно говоря меня так не устраивает.

Добавлено через 1 минуту
Значит действительно повязано на стилях но я не знаю что. Я пробовал Мозилу и Ворд не работает почему не знаю.

Добавлено через 3 минуты
Цитата Сообщение от Morgot Посмотреть сообщение
Так а откуда вы взяли эти стили? И зачем? Что вы хотите сделать-то?
Для меня в приоритете открытие Браузера но это на первых порах но конечно я хотел бы чтобы работало всё т.е. речь не идёт о чём-то конкретном.
Цитата Сообщение от Morgot Посмотреть сообщение
p.s. потестируйте именно на блокноте или чем-то подобном (самописная прога с 1 окном). Возможно, фаерфокс имеет какие-то нюансы, не знаю там защиту от инжекта или еще что. Могу завтра поставить лисичку и тестануть , если надо именно там что-то делать
Посмотрите что можно сделать, странно это всё конечно.
Цитата Сообщение от Morgot Посмотреть сообщение
фаерфокс имеет какие-то нюансы, не знаю там защиту от инжекта или еще что
А что за защита?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.04.2021, 01:55

Встроенные стили элементов или стили в отдельном файле
Здравствуйте. Вопрос чисто из интереса, хотелось бы знать, как лучше с теоретической точки зрения. У CSS и HTML есть общие свойства(к...

Передача дополнительных параметров в обработчик WndProc через свой класс функциями Get/SetWindowLong
Все доброго здоровья. Задумываю для себя небольшое удобство в виде разработки классов (формы-контролы), однако столкнулся с такой...

Новые стили не применяются, удалил все стили а они все равно работают
Всем здравствуйте. У меня катастрофа!!! Мозг уже разплавился! Вообщем что случилось: Вчера решил изменить немного шрифт каталога (не...

Стили
Только ,что узнал о стилях Joomla супер вещь теперь такой вопрос , где происходит обертка содержимого в такое <div...

Стили?
Подскажите - на одной машине (сотрудник божиться ничего не делал) если выгружать из программы (наша специфическая) текст (шрифт таймс нью...


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

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

Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru