Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 02.04.2018, 15:48   #1
asdo
 
Регистрация: 23.01.2010
Сообщений: 4
Репутация: 10
По умолчанию SendMessage() и EM_GETLINE из потока

Добрый день!

Имеются 2 потока: Main и Work. В Main создано окно hWnd с дочерним диалоговым немодальным окном hDlg, в котором, в свою очередь, однострочный эдит-бокс и многострочный лист-бокс. Из рабочего потока Work вызываю:

Код:

EditString[0]=128;
NofBytes=SendDlgItemMessage(hDlg, IDC_EDIT, EM_GETLINE, 0, (LPARAM)EditString);

В результате NofBytes=0. При этом данные в буфер EditString успешно заносятся.

Если тот же вызов проделать из процедуры главного окна hWnd, то он отработает корректно и возвращаемое значение будет соответствовать числу считанных байт.


В МСДН на этот счет говорится, в случае вызова из hWnd происходит, что называется, вызов "в лоб", т.е. просто CALL.
А в моем случае вызывающий поток должен тормознуться на время обработки сообщения оконной процедурой, но в конце концов тем не менее также успешно отработать...

Стоит сказать, что аналогичные посылки с возвратом значения к лист-боксу (например, запрос индекса текущей строки) отрабатывают успешно из рабочего потока.
asdo вне форума   Ответить с цитированием
Ответ

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить доступ к методу потока(TThread) из основного потока? Pcrepair Общие вопросы Delphi 3 30.03.2013 14:52
Должно быть 3 потока. А диспетчер задач показывает, что потока создано 2 BEL9ILLI Общие вопросы Delphi 3 06.12.2011 20:26
SendMessage sashaxD Win Api 5 22.10.2011 20:02
Как узнать номер потока из самого потока? GaMeSTeR Помощь студентам 0 03.12.2010 10:50
SendMessage ASЯ Помощь студентам 0 20.05.2010 10:38


16:44.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru