|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
Как правильно создать окно только для сообщений, используя CreateWindowEx?02.08.2023, 20:37. Показов 2713. Ответов 63
Метки нет (Все метки)
Итак, например мне захотелось использовать окно только для сообщений, и я не знаю с чего мне начать и как это сделать правильно, я ещё новичок. Но я понял, что можно создать окно только для сообщений двумя путями:
1) Сначала зарегистрировать свой собственный класс окна (а это геморно и долго), а потом уже создать окно только для сообщений 2) Использовать любой класс окна, хоть например BUTTON, а потом создать окно только для сообщений 3) Использовать системный класс "Message" при создании окна только для сообщений И вот я ломаю голову как же поступить правильнее. Сразу скажу, что самое простое это использовать системный класс "Message" но так ли это правильно, а регистрировать свой собственный класс ой как не хочется (ну зачем же столько много лишнего кода!!!) Посоветуйте, пожалуйста, либо помогите мне, пожалуйста, готовым кодом на VB6 для создания окон только для сообщений. Я ищу самый простой вариант. Вот моя идея такова, код:
0
|
||||||
| 02.08.2023, 20:37 | |
|
Ответы с готовыми решениями:
63
Как правильно активировать окно и переключить фокус клавиатуры на него в чужом потоке с использованием оконных сообщений
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 03.08.2023, 11:57 [ТС] | ||
|
Добавлено через 4 минуты Такие профессионалы как The Trick всегда используют окна только для сообщений в своих приложениях. Но The Trick регистрирует свой собственный класс, а я не хочу. А зачем нужны окна для сообщений можете в Интернете почитать.
0
|
||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 03.08.2023, 12:25 [ТС] | ||
|
Такие профессионалы как The Trick всегда используют окна только для сообщений в своих приложениях. Но The Trick регистрирует свой собственный класс, а я не хочу. А зачем нужны окна для сообщений можете в Интернете почитать.
Добавлено через 8 минут Catstail, https://learn.microsoft.com/ru... ly-windows
1
|
||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 03.08.2023, 13:05 [ТС] | |
|
Catstail, я не люблю лёгких путей, я создаю приложение без формы вообще!
Добавлено через 16 секунд Форма - это лишнее ненужное окно
0
|
|
|
Модератор
|
|
| 03.08.2023, 13:26 | |
|
Такие окна я обычно использую для передачи сообщений между потоками. Регистрировать класс нужно, т.к. при создании системных окон выделяются ресурсы в их обработчиках сообщений которые не нужны для обычного Message-only окна.
1
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 03.08.2023, 13:41 [ТС] | |
|
The trick, а я пишу приложение без формы. Регистрировать класс это сложно, там у тебя в кодах ещё и ассемблерная вставка по моему для регистрации класса. Неужели нельзя просто использовать любой класс. Искал в интернете ничего не нашёл толком. Рад, что ты снова на форуме)
Добавлено через 3 минуты Интересность ещё и в том, что программа на VB6 без формы всё равно создаёт в процессе три-четыре разных системных окна, например главное ThunderRT6Main с названием проекта. Его кстати тоже можно использовать вместо окна для сообщений, я проверял тоже работает прекрасно. Добавлено через 2 минуты Ну простой пример я создаю маленькую программку с иконкой в системном трее, но без формы вообще, там надо отслеживать WM_MOUSEMOVE для определения клика по иконке в системном трее. И я думал как же лучше организовать. Либо эти сообщения направить на уже имеющиеся окна такие как ThunderRT6Main либо на новое окно только для сообщений. И вот думаю до сих пор.
0
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 03.08.2023, 13:50 [ТС] | |
|
Вот пример проекта, кстати, кому интересно программа без формы на VB6 для отслеживания горячих клавиш и с иконкой в системном трее. В этом примере я даже и вовсе не использую окно только для сообщений, а "подсаживаю" сообщения на ThunderRT6Main...
0
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 03.08.2023, 13:56 [ТС] | |
|
Там правда форму я всё-таки добавил и вызывается она сочетанием клавиш Alt+Win+Z но на самом деле форма там и не нужна вовсе. Я только для примера её туда прикрутил, чтобы типа выполнялось какое-то действие заметное по нажатию клавиш. Потом меня шокировало, то что после закрытия формы VB гадит некоторыми окнами и не подчищает за собой после выгрузки формы из памяти, остаются окна "VBBubbleRT6" и "MSCTFIME UI". Поэтому я решил их уничтожать вручную через DestroyWindow в событии выгрузки формы Form_Unload
Добавлено через 2 минуты Да и ещё шокировало так же то что выгрузка формы не освобождает память. Процесс занимает вот 6 МБ в оперативной памяти, если вызываю форму, уже начинает занимать 8 МБ в оперативной памяти, но после Unload Form1 память не подчищается и процесс всё равно продолжает занимать 8 МБ оперативной памяти. Это меня очень расстроило, если честно, такие огромные недочёты в VB6.
0
|
|
|
Супер-модератор
|
||
| 03.08.2023, 14:03 | ||
1
|
||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 03.08.2023, 16:18 [ТС] | |
|
Catstail, я и не использую формы
0
|
|
|
Модератор
|
||||||
| 03.08.2023, 20:43 | ||||||
|
0
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 03.08.2023, 20:48 [ТС] | ||
|
Catstail, я и не использую формы
Добавлено через 1 минуту После Unload Form ещё приходится и удалять два окна "VBBubbleRT6" и "MSCTFIME UI", которых, я подчёркиваю НЕБЫЛО до загрузки формы!!!!!!!!!!!!!!!!!!!!!!!!!!! Добавлено через 42 секунды А вот tmp-файл я уже удалить не смогу скорее всего она его ещё и удерживать будет, мало того что не удалять за собой Unload Form вообще плохо чистит всё
0
|
||
|
Модератор
|
||||
| 03.08.2023, 20:52 | ||||
![]()
0
|
||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||
| 03.08.2023, 21:06 [ТС] | |||
|
Добавлено через 1 минуту Правильным Unload было бы 100% освобождение и возврат к тому моменту до загрузки формы. Чтобы вернуться к тому моменту до вызова Form1.Show но оно так не работает... Добавлено через 3 минуты
0
|
|||
|
Модератор
|
|||
| 03.08.2023, 21:18 | |||
|
2
|
|||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 03.08.2023, 22:58 [ТС] | |
|
The trick, спасибо)
Добавлено через 40 секунд The trick, осталось только разместить здесь код для создания окна для сообщений с регистрацией класса))))))
0
|
|
| 03.08.2023, 22:58 | |
|
Помогаю со студенческими работами здесь
20
Используя иерархию и наследование, создать классы окно, окно с заголовком и окно с кнопкой Как создать контрол WinForms через CreateWindowEx? CreateWindowEx() не создает окно Как правильно создать окно MCI? Как правильно создать второе окно? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение
Это мой обзор планшета X220 с точки зрения школьника.
Недавно я решила попытаться уменьшить свой. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|