Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.14;
Скачать: CL | DM;

Вниз

Соощения и потоки   Найти похожие ветки 

 
_Anton   (2005-06-15 19:51) [0]

Столкнулся с тем, что надо послать свое сообщение из
одного потока в другой.
делаю так:
1-й поток:
#define WM_SENT_TEXT_TO_WINDOW WM_USER+1

void __fastcall CTread_LoadFiles::Execute()
{
objTread_display_load_pocess = new  CTread_display_load_pocess(false, x, y, Width, Height, Window_name);
Sleep(1); //
maked_TrId = objTread_display_load_pocess->TrId;
maked_Tr_hwnd = objTread_display_load_pocess->hwnd;
PostThreadMessage(maked_TrId, WM_SENT_TEXT_TO_WINDOW,0,0);
}
=============================
второй поток:

#define WM_SENT_TEXT_TO_WINDOW WM_USER+1
цикл обработки как положено, а в нем:
case WM_SENT_TEXT_TO_WINDOW: {
           hdc = BeginPaint(hwnd, &ps);
           TextOut( hdc, 15, 15, "USER", 5);
           EndPaint(hwnd, &ps); }
       break;

не работает, системные сообщения отрабатывают нормально
как правильно сделать?


 
Digitman ©   (2005-06-16 08:09) [1]


> цикл обработки как положено


где тут "цикл" ? нет никакого цикла в твоем коде


 
alpet ©   (2005-06-16 10:07) [2]

У тебя сообщение вполне может отправиться до того как второй поток создаст свой цикл обработки сообщений. В таких случаях надо синхронизацию делать. И с WM_USER надо помнить что много сообщений с его участием есть, например твое WM_USER+1 == DM_SETDEFID.


 
_Anton   (2005-06-16 10:59) [3]

Приношу свои извинения - всё отлично работает.
Просто я в этом обработчике пытался рисовать:
case WM_SENT_TEXT_TO_WINDOW: {
          hdc = BeginPaint(hwnd, &ps);
          TextOut( hdc, 15, 15, "USER", 5);
          EndPaint(hwnd, &ps); }
      break;
а рисовать можно только в WM_PAINT


 
alpet ©   (2005-06-16 13:00) [4]

>а рисовать можно только в WM_PAINT
С чего это вдруг? Другое дело что если обработчик твой и отрабатывает (что-то рисует), окно при перерисовке его системой затрет все что он нарисовал.



Страницы: 1 вся ветка

Текущий архив: 2005.08.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.032 c
4-1118920361
leonidus
2005-06-16 15:12
2005.08.14
Как получить заголовок чужого окна ?


14-1121928072
Noxa
2005-07-21 10:41
2005.08.14
IBExpert. Русский язык интерфейса.


6-1115183376
BanderLog
2005-05-04 09:09
2005.08.14
Передача файлов по сети


10-1099556750
sands
2004-11-04 11:25
2005.08.14
Callbacks & CORBA


1-1122033841
Weberd
2005-07-22 16:04
2005.08.14
Являются ли .dcu файлы версионными?