Класс окна #12345 ...

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Класс окна #12345 ...

WinMain » 04 фев 2005, 15:58

На самом деле здесь всё как раз наоборот. Для работы с объектами Windows, оконные классы которых начинаются со знака "#", в Win32API предусмотрены специальные функции. Так для создания окна диалога существуют специальные функции типа CreateDialog() или DialogBox()...
Для создания выпадающего меню вызывается функция CreatePopupMenu(), а далее текст в него добавляется или считывается тоже с помощью специальных функций: AppendMenu(), GetMenuItemInfo()...

Можно конечно попробовать воспользоваться и обычными функциями типа CreateWindow() и SendMessage(), но такой способ не является документированным. И где гарантия, что такое приложение будет корректно работать в других версиях Windows?

RAVEN » 20 окт 2004, 12:33

Все выпадающие меню имеют класс вида #12345 и Вы говорите, что с ними можно работать также как и с остальными окнами, но на сообщения WM_GETTEXT и EM_GETLINE они не реагируют.

Romeo » 20 окт 2004, 12:07

Подробнее, пожалуйста.

RAVEN » 20 окт 2004, 11:35

Romeo писал(а):Работать с такими контролами нужно точно так же, как и со стандартными элементами управления Windows - они пониют все сообщения своих "прародителей".
Хм. Что-то надпись на пункте выпадающего меню не вытаскивается ни WM_GETTEXT, ни EM_GETLINE. Чем же тогда?

Romeo » 13 окт 2004, 11:27

Это обозначает, что класс регистрировался автоматически какой-нибудь высокоуровневой средой разработки наподобие Delphi или C Builder. Такие среды обыно используют принцип сабклассинга для создания элементов управления, наследующих своё поведение от стандартных элементов управления Windows, причём весь процесс скрывается от конечного програмимиста, что нибы-то должно способствовать облегчению труда последнего. Работать с такими контролами нужно точно так же, как и со стандартными элементами управления Windows - они понимают все сообщения своих "прародителей".

Класс окна #12345 ...

RAVEN » 12 окт 2004, 17:25

Здравствуйте, уважаемые программисты.
У меня такой вопрос: получаю класс окна с помощью ф-ции GetClassName. Некоторые окна имеют класс вида #xxxxx где x - цифра, такие как выпадающие списки, диалоговые окна и т.п. Может это означает, что эти окна являются "детьми", тогда каким образом работать с ними?

Вернуться к началу