imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 26.12.2007, 21:17     # 1
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
класс - окно для вывода текстовой информации

Привет всем. Нужна помощь - надо создать вспомогательное текстовое окошко (желательно с вертикальной прокруткой) и выводить в него небольшие текстовые сообщения.

Я сделал класс, который будет скомпилирован в ДЛЛ, а чужая прога дает фейс и будет вызывать мой класс. Внутри моего класса один из членов будет этот логгер. Мой класс сегодня никак не трогает ГУИ.

Окошко логгера должно будет создаваться в конструкторе моего класса (который создается при старте аппликации), и будет создана только 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.
crawler вне форума  
Старый 27.12.2007, 08:15     # 2
PSyton
Junior Member
 
Аватар для PSyton
 
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187

PSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форуме
А в чем собственно проблема-то?
Создай в ресурсах окошко, например с RichEdit'ом, а в конструкторе класса делай CreateWindow(), потом когда надо ShowWindow(SW_SHOw/SW_HIDE).
После создания получаешь хендл RichEdit'а и
когда надо что-то вставить в текстовую облать, отсылаешь RichEdit'у сообщение через SendMessage(), какие параметры можно посмотреть в MSDN... Очистка тоже через SendMessage.
__________________
Дураки не динозавры - они не вымрут...
PSyton вне форума  
Старый 27.12.2007, 11:03     # 3
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
проблема собсно в "создать". RichEdit даже не нужен, достаточно обычного TextEdit ( или StaticText ).
Цитата:
Создай в ресурсах окошко,
можно примерчик плиз? а то я с ГУИ не особо в ладах

И еще - как создать это окошко чтобы оно висело "поверх" всего остального?

Последний раз редактировалось crawler; 27.12.2007 в 11:52.
crawler вне форума  
Старый 27.12.2007, 12:24     # 4
BillyIII
Guest
 
Сообщения: n/a

все просто:
1 регишь класс
2 создаешь окно
3 добавляешь дочернее класса "EDIT" - это текст-бокс
4 стиль WS_EX_TOPMOST - поверх окон
 
Старый 27.12.2007, 13:09     # 5
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
Цитата:
1 регишь класс - зачем? и как?
2 создаешь окно - ну с этим вроде как понятно
3 добавляешь дочернее класса "EDIT" - это текст-бокс -как?
ooooxxx ;( я понимаю что все просто. В теории даже понятно. Но я этого никогда не делал.

Если все так просто - накидай эти 10 строк кода.

Последний раз редактировалось crawler; 27.12.2007 в 13:16.
crawler вне форума  
Старый 27.12.2007, 13:17     # 6
BillyIII
Guest
 
Сообщения: n/a

если есть VisualStudio - создай проект из шаблона Win32 App

посмотри в MSDN:
RegisterClassEx()
CreateWindowEx()

и ещё вариант:
создать консоль, вызвав AllocConsole()
далее получить хэндл стдаут через GetStdHandle(STD_OUTPUT_HANDLE)
теперь использовать WriteFile для записи в консоль
 
Старый 27.12.2007, 13:20     # 7
PSyton
Junior Member
 
Аватар для PSyton
 
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187

PSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форуме
Вечером отпишу, если никто не напишет.
Конслоь тоже кстати вариант.
__________________
Дураки не динозавры - они не вымрут...
PSyton вне форума  
Старый 27.12.2007, 14:42     # 8
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
консоль - самое то. WriteConsole() удобнее WriteFile . Спасибо большое.
crawler вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 21:43.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.