Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Одно создаваемое в DLL и используемое паралельно с консолью не перерисовывается.Как?

504
21 февраля 2007 года
lexluther
71 / / 26.10.2004
Всем привет,

Есть библиотека на C++ под Delphi 2006. Замысел этой библитеки создать одно и предоставить возможность программе подключившей эту библиотеку выводить в поле Memo определенные сообщения (типа как отчет о выполнении) используя функцию SetMessage (идет ниже).

extern "C" __declspec(dllexport) void CreateDebugWindow(char* name, unsigned int index)
{
DebugWindowForm=new TDebugWindowForm(NULL);

DebugWindowForm->Caption=name;

DebugWindowForm->Show();
}

extern "C" __declspec(dllexport) void SetMessage(char* message, unsigned int index)
{
if(DebugWindowForm->DebugMemo->Text.Length()>MAX_CONTENT_SIZE)
DebugWindowForm->DebugMemo->Clear();

AnsiString MyString(message);

DebugWindowForm->DebugMemo->Text="HELLO WORLD";
}

extern "C" __declspec(dllexport) void DeleteDebugWindow(unsigned int index)
{
delete DebugWindowForm;

DebugWindowForm=NULL;
}

Есть консольное приложение под Visual C++ 2005 использующее эту DLL, и посылающее кучу дебаг-сообщений через SetMessage. Проблема в том что консоль то все посылает и DLL все принимает, но окно не перерисовывается. Т.е. не реагирует на стандартные сообщения Windows. Я так понимаю что мне нужен аналог Application-ProcessMassages() (билдеровская функция) но под Visual.

Как мне заставить окно отрисовываться нормально и принимать WM_PAINT и иже с ним.

С уважением.
7.6K
21 февраля 2007 года
Darien
125 / / 15.01.2006
Конечно не реагирует, нужно перегружать обработчики сообщений. Как это делать ? Зависит от архитектуры данного класса "окно". А вообще - CreateWindow рулит :))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог