Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2008, 22:21   #1
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
Вопрос Не работает SendMessage

Здрасте всем. Вопрос у меня прямо таки скажем ламерский.
Пишу лабу по винапи. Синхронизация значит. Так вот. При входе в критическую секцию поток должен отправлять сообщение WM_USER главному окну. А окно в свою очередь отправляет сообщение LB_ADDSTRING ListBoxу. И туда добавляется строка типа "Поток № такой-то вошел в крит секцию". Проблема вот в чем - сообщение не отправляется. Вот код

Код:
wsprintf( szBuffer, L"Thread %x waiting for critical section", GetCurrentThreadId() );
   SendMessage( hwnd, WM_USER, 0, (LPARAM)szBuffer );

   EnterCriticalSection( &cs );
   wsprintf( szBuffer, L"Thread %x in critical section", GetCurrentThreadId() );
   SendMessage( hwnd, WM_USER, 0, (LPARAM)szBuffer );

//тут типа будет критический участок кода
   Sleep( 5000 );

   LeaveCriticalSection( &cs );
   wsprintf( szBuffer, L"Thread %x has exited critical section", GetCurrentThreadId() );
   SendMessage( hwnd, WM_USER, 0, (LPARAM)szBuffer );


...

case WM_USER:
              {
                 WCHAR szBuffer[128];
                 static int msg_num = 0;

                 wsprintf( szBuffer, L"%3d: %s", ++msg_num, (LPWSTR)lParam );
                 SendMessage( hList, LB_ADDSTRING,
                              (WPARAM)-1, (LPARAM)szBuffer );
              }
              break;
Подскажите, может я что-то неправильно делаю.
ПыСы: PostMessage тоже пробовал... не катит.
ПыПыСы: знаю, что тема уже перетертая вдоль и поперек, но поиском ниче толкового не нашел.

Последний раз редактировалось MaTBeu; 26.09.2008 в 22:24.
MaTBeu вне форума Ответить с цитированием
Старый 27.09.2008, 01:18   #2
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

мало кода. как ты определил WM_USER? где ты ловишь вм юзер? может ошибся, и пытаешься его поймать в разделе WM_COMMAND, к примеру?
vvviperrr вне форума Ответить с цитированием
Старый 27.09.2008, 15:49   #3
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

В принципе я уже сделал. Но всеравно интересно. ВМ_ЮЗЕР я ловил за пределами ВМ_КОММАНД. А что значит "Как ты определил WM_USER"?

Пысы: Я сделал так, что сообщение отправляется прямо контролу тоесть листбоксу.
MaTBeu вне форума Ответить с цитированием
Старый 27.09.2008, 16:27   #4
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2MaTBeu ну обычно вм юзер никто не шлет, а делают типо такого:
#define WM_MY_MESSAGE WM_USER + 1
vvviperrr вне форума Ответить с цитированием
Старый 27.09.2008, 18:03   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

А потом что? Посылают сообщение WM_MY_MESSAGE главному окну? или как? Звыняй за ламерство, но я действительно не доганяю что ты хочешь сказать.
MaTBeu вне форума Ответить с цитированием
Старый 29.09.2008, 01:25   #6
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2MaTBeu ну да) шлют WM_MY_MESSAGE окну, от которого требуется обработать его.
vvviperrr вне форума Ответить с цитированием
Старый 01.10.2008, 19:00   #7
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Опа! Спасибо, выручил, так действительно заработало! Всем спасибо, тему можно таво...
MaTBeu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Параметры SendMessage Jenya Win Api 4 11.12.2010 19:15
Как принять сообщение (SendMessage) Crazyman Win Api 4 20.02.2008 04:42
Как изменить рабочий стол через sendmessage Romanbl4 Win Api 6 18.07.2007 14:35
SendMessage (перенесено со старого форума) rpy3uH Win Api 0 30.10.2006 20:19