Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
14-1122024136
asdqwer
2005-07-22 13:22
2005.08.14
SMS Email Gateway


14-1121945543
Opilki_Inside
2005-07-21 15:32
2005.08.14
Есть такой славный текстовый редактор ViM называется.


4-1118495711
Juk
2005-06-11 17:15
2005.08.14
Позиция и форма окна.


1-1122291352
ZSergey
2005-07-25 15:35
2005.08.14
Изменение глобальных констант.


14-1120413328
Soft
2005-07-03 21:55
2005.08.14
Какую CMS использовать?




   Наверх