|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
Как правильно создать окно только для сообщений, используя CreateWindowEx?02.08.2023, 20:37. Показов 2794. Ответов 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? Как правильно создать второе окно? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|