Ситуация:
В моей библиотеке используются таблицы рабочего стола QUIK и, соответственно, обрабатываются оконные сообщения. Когда пользователь нажимает, например, левую кнопку мыши над ячейкой одной из таких таблиц и затем, не отпуская кнопки, переносит курсор мыши на другую пользовательскую таблицу - сообщение QTABLE_LBUTTONUP приходит с tid таблицы, над которой кнопка была отпущена. Но если пользователь отпустил кнопку не над пользовательской таблицей, а над любым другим произвольным местом окна QUIK или над свободном от ячеек месте пользовательской таблицы - никакое сообщение не приходит и это не позволяет создать полноценную обработку событий от мыши для реализации достаточно вменяемого и функционального "псевдографического" пользовательского интерфейса.
Предложения:
1) Расширить информационные функции сообщений QTABLE_LBUTTONUP и QTABLE_RBUTTONUP таким образом, что в случае, если отпускание кнопки, нажатой над пользовательской таблицей, происходит не над пользовательской таблицей, то сообщение QTABLE_LBUTTONUP (или QTABLE_RBUTTONUP соответственно) приходит в обработчик, зарегистрированный для таблицы, над которой кнопка была нажата, но с tid = 0.
2) Расширить информационные функции сообщений QTABLE_LBUTTONUP и QTABLE_RBUTTONUP таким образом, что в случае, если отпускание кнопки, нажатой над пользовательской таблицей, происходит над (любой) пользовательской таблицей в свободном от ячеек пространстве, то сообщение QTABLE_LBUTTONUP (или QTABLE_RBUTTONUP соответственно) приходит в обработчик, зарегистрированный для таблицы, над которой кнопка отпущена с tid, равным её tid и c par1==nil и par2==nil. nil - это как вариант, можно взять любую константу на ваше усмотрение.
В моей библиотеке используются таблицы рабочего стола QUIK и, соответственно, обрабатываются оконные сообщения. Когда пользователь нажимает, например, левую кнопку мыши над ячейкой одной из таких таблиц и затем, не отпуская кнопки, переносит курсор мыши на другую пользовательскую таблицу - сообщение QTABLE_LBUTTONUP приходит с tid таблицы, над которой кнопка была отпущена. Но если пользователь отпустил кнопку не над пользовательской таблицей, а над любым другим произвольным местом окна QUIK или над свободном от ячеек месте пользовательской таблицы - никакое сообщение не приходит и это не позволяет создать полноценную обработку событий от мыши для реализации достаточно вменяемого и функционального "псевдографического" пользовательского интерфейса.
Предложения:
1) Расширить информационные функции сообщений QTABLE_LBUTTONUP и QTABLE_RBUTTONUP таким образом, что в случае, если отпускание кнопки, нажатой над пользовательской таблицей, происходит не над пользовательской таблицей, то сообщение QTABLE_LBUTTONUP (или QTABLE_RBUTTONUP соответственно) приходит в обработчик, зарегистрированный для таблицы, над которой кнопка была нажата, но с tid = 0.
2) Расширить информационные функции сообщений QTABLE_LBUTTONUP и QTABLE_RBUTTONUP таким образом, что в случае, если отпускание кнопки, нажатой над пользовательской таблицей, происходит над (любой) пользовательской таблицей в свободном от ячеек пространстве, то сообщение QTABLE_LBUTTONUP (или QTABLE_RBUTTONUP соответственно) приходит в обработчик, зарегистрированный для таблицы, над которой кнопка отпущена с tid, равным её tid и c par1==nil и par2==nil. nil - это как вариант, можно взять любую константу на ваше усмотрение.