C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Messages
DarkStar
Отправлено: 22.10.2004, 18:43


Ученик-кочегар

Группа: Участник
Сообщений: 20



Привет всем.
Работаю со сканером. Все свои сообщения он передает через Handle моего окна, который я передаю в dll. Теперь вопрос. После того как я получаю некоторые сообщения от моей формы, с нею поступают и сообщения от сканера. далее в dll необходимо передавать некоторые параметры вместе с которыми необходимо передать и указатель на MSG (поступающие сообщения) мой компонент получен от TForm и через функция virtual void __fastcall WndProc(Messages::TMessage &Message);
я получаю приходящие сообщения. так вот, я получаю Messages::TMessage &, а мне надо передать *MSG. Как это сделать?

Gedeon
Отправлено: 25.10.2004, 12:20


Ветеран

Группа: Модератор
Сообщений: 1742



CODE

__fastcall WndProc(Messages::TMessage &Message){
   // че тут у Вас
   FuncToDll(/*Ваши остальные параметры*/, &Message);
}
DarkStar
Отправлено: 25.10.2004, 21:02


Ученик-кочегар

Группа: Участник
Сообщений: 20



Мне надо передать указатель не на структуру Messages::TMessage &, а на структуру MSG
CODE

typedef struct tagMSG {

   HWND        hwnd;
   UINT        message;
   WPARAM      wParam;
   LPARAM      lParam;
   DWORD       time;
   POINT       pt;
} MSG;
Gedeon
Отправлено: 26.10.2004, 10:09


Ветеран

Группа: Модератор
Сообщений: 1742



Тогда вот так примерно
CODE

void __fastcall TForm1::TestMsg(TMessage & Message)
{
   tagMSG Test;
   tagPoint pt;
   Test.hwnd = Handle; // нужное окно
   Test.message = Message.Msg;
   Test.wParam = Message.WParam;
   Test.lParam = Message.LParam;
   Test.time = time(NULL);
   //pt.x = 0;
   //pt.y = 0;
   Test.pt = pt;

}
//---------------------------------------------------------------------------


Параметры как-то можете по другому заполнить в зависимости от необходимости.

Вернуться в Вопросы программирования в C++Builder