imho.ws |
|
26.12.2007, 21:17 | # 1 |
Full Member
Регистрация: 11.12.2002
Сообщения: 864
|
класс - окно для вывода текстовой информации
Привет всем. Нужна помощь - надо создать вспомогательное текстовое окошко (желательно с вертикальной прокруткой) и выводить в него небольшие текстовые сообщения.
Я сделал класс, который будет скомпилирован в ДЛЛ, а чужая прога дает фейс и будет вызывать мой класс. Внутри моего класса один из членов будет этот логгер. Мой класс сегодня никак не трогает ГУИ. Окошко логгера должно будет создаваться в конструкторе моего класса (который создается при старте аппликации), и будет создана только 1 копия моего класса (если это важно). Код должен быть в С/С++, и желательно юзать ВинАПИ. Декларация - чтото вроде такого: Код:
class LogWindow { public: LogWindow (); ~LogWindow (); bool AddMsgToWindow (char *msg); bool ClearWindow (); { m_szMsgBuffer[0] = '\0'; return Update(); } private: bool Update(); HWND m_hwnd; char m_szMsgBuffer[10000]; }; Последний раз редактировалось crawler; 26.12.2007 в 23:57. |
27.12.2007, 08:15 | # 2 |
Junior Member
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187
|
А в чем собственно проблема-то?
Создай в ресурсах окошко, например с RichEdit'ом, а в конструкторе класса делай CreateWindow(), потом когда надо ShowWindow(SW_SHOw/SW_HIDE). После создания получаешь хендл RichEdit'а и когда надо что-то вставить в текстовую облать, отсылаешь RichEdit'у сообщение через SendMessage(), какие параметры можно посмотреть в MSDN... Очистка тоже через SendMessage.
__________________
Дураки не динозавры - они не вымрут... |
27.12.2007, 11:03 | # 3 | |
Full Member
Регистрация: 11.12.2002
Сообщения: 864
|
проблема собсно в "создать". RichEdit даже не нужен, достаточно обычного TextEdit ( или StaticText ).
Цитата:
И еще - как создать это окошко чтобы оно висело "поверх" всего остального? Последний раз редактировалось crawler; 27.12.2007 в 11:52. |
|
27.12.2007, 13:09 | # 5 | |
Full Member
Регистрация: 11.12.2002
Сообщения: 864
|
Цитата:
Если все так просто - накидай эти 10 строк кода. Последний раз редактировалось crawler; 27.12.2007 в 13:16. |
|
27.12.2007, 13:17 | # 6 |
Guest
Сообщения: n/a
|
если есть VisualStudio - создай проект из шаблона Win32 App
посмотри в MSDN: RegisterClassEx() CreateWindowEx() и ещё вариант: создать консоль, вызвав AllocConsole() далее получить хэндл стдаут через GetStdHandle(STD_OUTPUT_HANDLE) теперь использовать WriteFile для записи в консоль |