Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Полноценный клик


Автор: Alexandr87 11.1.2005, 18:50
Есть панель(TPANEL - дльфовская), нужно сделать полноценный клик.
Когда я запускаю нечто
Код

::SendMessage(but,WM_LBUTTONDOWN,0,0);
::SendMessage(but,WM_LBUTTONUP,0,0);

После чего, программа останавливается на втором сообщении, и следует дальше только после закрытия приложения с окном содержащим сий контрол.
При нажатии на эту кнопку производиться открываение нового окна и скрывание старого.
Использование ShowWindow не предлагать.

Автор: _hunter 11.1.2005, 19:07
почему бы Perform() не использовать?

Автор: Alexandr87 12.1.2005, 12:34
Цитата(_hunter @ 11.1.2005, 19:07)
почему бы Perform() не использовать?

MVC++6.0
Не знает таковой функции.
Поясни, что она делает. Кликаю не в своем окне.

Автор: _hunter 12.1.2005, 15:13
это от борланда. ( я думал ты в своей проге работаеш )

Автор: zhgutov 13.1.2005, 15:00
Если класс (виндовозный) окна - button, то почему бы не попробовать следующее:
Код

lResult = SendMessage (      // returns LRESULT in lResult
    (HWND) hWndControl,      // handle to destination control
    (UINT) BM_CLICK,         // message ID
    (WPARAM) wParam,         // = 0; not used, must be zero
    (LPARAM) lParam          // = 0; not used, must be zero
);

А вариант с WM_LBUTTON* не работает, видимо, из-за того, что WPARAM и LPARAM = 0.

Автор: Alexandr87 14.1.2005, 07:03
Класс как я уже грил TPanel, передавал не нули тот же эффект попробую BM_CLICK
спасибо

Автор: p0s0l 14.1.2005, 22:10
Цитата(Alexandr87 @ 11.1.2005, 18:50)
После чего, программа останавливается на втором сообщении, и следует дальше только после закрытия приложения с окном содержащим сий контрол.
А сам-то клик всё-таки срабатывает или нет ? Т.е. открывается новое окно ?
Если да, то попробуй вместо SendMessage делать PostMessage.
Отличие в том, что PostMessage добавляет сообщение в очередь, а SendMessage - передаёт сообщение сразу же на обработку оконной процедуре, и ждёт пока та не обработает сообщение...

Автор: Alexandr87 15.1.2005, 15:52
p0s0l - большое тебе спасибо именно в этом дело и оказалось.
Ты блин прям просветитель - еще раз спасибо. буду знать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)