Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Есть ли уже зарегистр. в системе класс окна, что-то вроде Memo 
:(
    Опции темы
Ibragim
Дата 31.7.2005, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



Всем снова день добрый.
Вот такой еще вопросик:
вот такая запись
Код

hTextWnd = CreateWindow("edit", "Text output", WS_OVER......

создает мне окошко с ТЕКСТОВЫМ РЕДАКОТОМ внутри. То бишь класс окна "edit" уже зарегистрирован системой, я его внаглую использую.

А есть ли где-то список таких зарегистрированных классов? А есть ли что-то похожее на консольное окно с сообщением вроде "WM_ADDSTRING", чтобы добавить туда строку и она снизу дописывалась? А может, есть возможность послать сообщение "добавь строку" в edit- окно?
PM MAIL   Вверх
p0s0l
Дата 31.7.2005, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 3
Всего: 112



Цитата(Ibragim @ 31.7.2005, 13:50)
А есть ли что-то похожее на консольное окно с сообщением вроде "WM_ADDSTRING", чтобы добавить туда строку и она снизу дописывалась? А может, есть возможность послать сообщение "добавь строку" в edit- окно?
Как такового специального сообщения нет, но делается это так:
Код

  int len = SendMessage( hTexWnd, WM_GETTEXTLENGTH, 0, 0 );
  SendMessage( hTexWnd, EM_SETSEL, len, len );
  SendMessage( hTexWnd, EM_REPLACESEL, 0, <Новая строка с с символами перевода каретки и новой строки> );


Цитата(Ibragim @ 31.7.2005, 13:50)
А есть ли где-то список таких зарегистрированных классов?
Список стандартных классов есть в MSDN: http://msdn.microsoft.com/library/default....wincontrols.asp


--------------------
С уважением, г-н Посол.
PM   Вверх
Nastya
Дата 1.8.2005, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

Репутация: 3
Всего: 44



Если я правльно поняла вопрос человек хочет получит список всех классов окон, зарегистрированых в системе в том числе и пользовательскоми приложениями . Я правильно поняла? Если честно хотелось бы и самой такую информацию иметь smile


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
ManiaK
Дата 1.8.2005, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Кстати, такая весч реализована в одной утилите, идущей с VC 6.0. Т.ч. это в принципе реально. Чисто теоретически можно предположить, что существует какое-то базовое окно и все остальные - его подокна. Пробежаться по дереву, опросить классы smile
PM MAIL WWW   Вверх
Fixin
Дата 1.8.2005, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



в вин-16 была такая штука:
Код
CLASSENTRY Class;
BOOL Result;
Class.dwSize = sizeof(Class);
Result = ClassFirst(&Class);
While (Result)
{
ListBox_AddString(hListBox, Class.szClassName);
Result = ClassNext(&Class);
}
Все это, кажется, в ToolHelp. Не помню. Этот код тоже по памяти писал, так что не пинайте.
PM MAIL ICQ   Вверх
p0s0l
Дата 1.8.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 3
Всего: 112



Цитата(Nastya @ 1.8.2005, 10:07)
Если я правльно поняла вопрос человек хочет получит список всех классов окон, зарегистрированых в системе в том числе и пользовательскоми приложениями .
А смысл ? Этому трудно найти практическое применение... Не создавать же окна первых попавшихся классов, которые выглядят неизвестно как и делают неизвестно что ? smile
Тем более, что, насколько я знаю, очень редко приложения регистриуют классы глобально для всей системы, для этого нужно делать DLL, которая подключается ко всем процессам системы.
Если же приложение регистрирует класс глобально для своего приложения или локально для определенного модуля, то в других процессах эти классы использовать будет нельзя.

Всё имхо...


--------------------
С уважением, г-н Посол.
PM   Вверх
Ibragim
Дата 1.8.2005, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



Не, вопрос не в том smile
Просто удобно пользоваться виндовым стандартным notepad для своих целей.
А например такую же штуку для консольного окна сообщений сделать бы? а еще чего-нибудь общепринятое и безусловно полезное?

PM MAIL   Вверх
Fixin
Дата 1.8.2005, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Я думаю, тебе просто неизвестно то, что едит может быть мультистроковым. стиль у него такой, кажется ES_MULTILINE. Смотри МСДН по едиту.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0567 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.