SendMessage из одного окна в другое
SetActiveWindow(hwndcurrent)
SendMessage(hwndcurrent, BM_CLICK, ByVal 0, ByVal 0) или
SendMessage(hwndcurrent, WM_CHAR, 10, ByVal 0)
Но в целевую форму прилетают только сообщения WM_NULL.
Подскажите, как послать что-нибудь не нулевое, чтобы во второй форме можно было поймать и обработать.
Цитата:
Originally posted by Evgeniy
Требуется посылать сообщения из первой формы во вторую и имитировать нажатие определенные кнопки на второй форме. Я делаю так:
SetActiveWindow(hwndcurrent)
SendMessage(hwndcurrent, BM_CLICK, ByVal 0, ByVal 0) или
SendMessage(hwndcurrent, WM_CHAR, 10, ByVal 0)
Но в целевую форму прилетают только сообщения WM_NULL.
Подскажите, как послать что-нибудь не нулевое, чтобы во второй форме можно было поймать и обработать.
Требуется посылать сообщения из первой формы во вторую и имитировать нажатие определенные кнопки на второй форме. Я делаю так:
SetActiveWindow(hwndcurrent)
SendMessage(hwndcurrent, BM_CLICK, ByVal 0, ByVal 0) или
SendMessage(hwndcurrent, WM_CHAR, 10, ByVal 0)
Но в целевую форму прилетают только сообщения WM_NULL.
Подскажите, как послать что-нибудь не нулевое, чтобы во второй форме можно было поймать и обработать.
Я лично делал криво - проверял из программы-сервера наличия определенного файлика, когда он появлялся, вызывал требемую функцию с параметрами, описанными в файле. На самом деле криво, но не тормозило :)
правда немного другой случай - на одной форме показываю HWND, создаю прогу которая посылает SendMessage(HWND(0x394),WM_RBUTTONDOWN,0,0);, где 0x394 - выведенное формой число. Все работает как надо.
а зачем делается ActiveWindow?
Ты уверен в константах?
Цитата:
Originally posted by Evgeniy
SetActiveWindow(hwndcurrent)
SendMessage(hwndcurrent, BM_CLICK, ByVal 0, ByVal 0) или
SendMessage(hwndcurrent, WM_CHAR, 10, ByVal 0)
Но в целевую форму прилетают только сообщения WM_NULL.
SetActiveWindow(hwndcurrent)
SendMessage(hwndcurrent, BM_CLICK, ByVal 0, ByVal 0) или
SendMessage(hwndcurrent, WM_CHAR, 10, ByVal 0)
Но в целевую форму прилетают только сообщения WM_NULL.
вероятно, hwndcurrent-дескрипотор собственно самой формы, а вот BM_CLICK следовало бы послать кнопке на эой форме, которая есть дочернее окно этой ф-мы (например hwndBtn)
тогда попробуй так:
SetActiveWindow(hwndcurrent)
SendMessage(hwndBtn, BM_CLICK, ByVal 0, ByVal 0)
...у меня когда-то возникла проблема с закрытием ненужных диалоговых окон, которую я решил так:
PostMessage(hWnd,WM_SYSCOMMAND,SC_CLOSE,0);