Суть вот в чем, есть тулбар и пустое pop-up окно, навожу мышь, но не кликаю! на одну из кнопок тулбара , кнопка подсвечивается Затем нажимаю заранее забитую клавишу и меняю программно подсвеченную кнопку(TB_SETHOTITEM) не изменяя положения мыши и двигаю pop-up окно (MoveWindow). И вот тут начинатеся проблема программно подсвеченая кнопка на тулбаре теряет фокус и он возвращяется под мышь. Вопрос как это избежать? Я себе уже все мозги вынес не получается!
elestrago Мусье знает толк в извращениях Наверно логичнее всего будет двигать мышь вслед за кнопкой (см. mouse_event) иначе если искусственно заставить тулбар сохранять фокус возникнет неразбериха какой из них настоящий тот что под мышью или тот что "запомнился" Хотя можно ещё субклассировать тулбар и после сдвига окна подсовывать ему ложное положение мыши до тех пор пока юзер её не переместит.
ладно опишу подробнее, пишу нестандартное меню, ребар - тулбар - меню, pop-up окно это и есть будущее меню, загвостка в том что допустим я кликнул на какую либо кнопку на тулбаре, развернулось окно-меню, дальше к примеру я хочу нажать на клаве стрелку влево или в право чтобы меню выскочило на соседней кнопке, но при этом мне необходимо чтобы курсор мыши оставался там где он есть. вот тут и начинается беда. Кликаю кнопку раскрывается меню, тыкнул стрелку влево(отсылается сообщение TB_PRESSBUTTON это чтобы нажать соседнюю кнопку, затем TB_SETHOTITEM чтобы отдать кнопке фокус, далее срабатывает обработчик события изменения фокуса тобиш TBN_HOTITEMCHANGE он все анализирует и перемещает окно функцией MoveWindow) все перемещается и работает нормально, проблема в том что Функция MoveWindow каким то образом заставляет тулбар очухаться и вернуть фокус под мышку и из за этого меню с соседней кнопки моментально возвращается под мышку, потому что срабатывает TBN_HOTITEMCHANGE. Я себе уже все мозги вынес =) прошу вашей помощи
субклассируй и не отдавай это сообщение как будто его и нет(TBN_HOTITEMCHANGE.) зачем двигать окно таак и не понял
elestrago Чесно говоря мне очень не нравится как M$ реализовало тулбар и ребар, имхо если уж делать "нестандартное меню, ребар - тулбар - меню" то лучше вообще отказаться от виндовых заготовок, а сделать их самому, в итоге это окажется проще чем бороться с их заморочками
punxer затем, чтобы меню переместилось под другую кнопку, субкластинг тут не нужен TBN_HOTITEMCHANGE приходит в тело главного окна Y_Mur я уже тоже подумываю над тем чтобы не только меню свое сделать, но и тулбар =)