Наверняка уже обсуждалось, но я не нашел Вообще это время возвращается функцией GetMessage в MSG::time, однако подавляющая часть сообщений передается непосредственно оконной процедуре, не вызывая возврата из GetMessage. Функция GetMessageTime() для таких сообщений не предназначена. В функцию ловушки для WH_CALLWNDPROC время тоже не передается. Тогда как это время можно узнать?
Nouzui Вообще-то передача сообщения непосредственно оконной процедуре заключается в её вызове без всяких очередей, так что время отправки и время получения совпадают ==> GetTickCount на входе оконной процедуры рулит Только что проверил - для тех сообщений, что идут через GetMessage поле msg.time тоже полностью совпало с тем, что показала GetTickCount на входе
Y_Mur я имел в виду из другого потока GetMessage извлекает мессаг из очереди, но не возвращается, а вызывает WndProc
И где же ты хочешь получить время отправки? в WndProc ?, при вызове GetMessage? или при вызове SendMessage ?
Y_Mur время, когда сообщение было добавленно в очередь а вообще все это тому, что у всех программ треевая менюшка показывается не рядом со значком трея, а рядом с указателем мыши. иногда, при тормозах, указатель мыши может находиться от трея достаточно далеко.. думаю, все это наблюдали вот я и задумался, неужели нельзя вычислить положние указателя на момент щелчка? ps: где получать - по фиг только не надо предлагать сплайсить SendMessage в explorer'е
rmn и WM_USER в частности в принципе, можно воспользоваться мессагой, которая проходит через цикл, но чисто теоретически интересно узнать, как реализовать сабж
кстати, нет такой мессаги.. все, что послано SendMessag'ом, приводит к вызову оконной процедуры без возврата из GetMessage'а - только сейчас узнал так как же выяснить время, когда такое сообщение было добавленно в очередь потока?
Потому что координат у значка нет, а положение курсора берётся обычно из GetCursorPos. Соответственно, когда пришло сообщение, тогда координаты и получаются.
IceStudent это я понимаю ) вопрос стоит в том, как получить позицию курсора на момент вызова SendMessage, а не на момент обработки в WndProc
Подозреваю, что в общем случае никак. Хотя, можешь посмотреть исходники, может, что и натолкнёт на мысль.