Почти восстановил учебную утилитку, исходники и пояснения к которой сгинули вместе с ноутбуком (ее тема — window nonclient area и особенности HT-зон),
но намертво застрял на следующем замечании в MSDN-овской статье "WM_NCHITTEST Notification":
HTSYSMENU
In a window menu or in a Close button in a child window.
Ну никак не получается ни припомнить, ни найти заново пример такой button... Не поможете?
K> In a window menu or in a Close button in a child window.[/q] K>Ну никак не получается ни припомнить, ни найти заново пример такой button... Не поможете?
Справа сверху.
Здравствуйте, Аноним, Вы писали:
K>> In a window menu or in a Close button in a child window.[/q] K>>Ну никак не получается ни припомнить, ни найти заново пример такой button... Не поможете? А>Справа сверху.
K>>> In a window menu or in a Close button in a child window.[/q] K>>>Ну никак не получается ни припомнить, ни найти заново пример такой button... Не поможете? А>>Справа сверху. K>Без HTSYSMENU — не смешно.
Нифига не понял, кроме того что понял что не понял ваш изнаяальный вопрос. Засим спокойной ночи и желаю вам почетче задавать вопросы, чтоб следующий отвечающий не пытался постичь суть вопроса о смысле вселенной, ваще всего и кнопки close в частности.
Здравствуйте, Аноним, Вы писали:
А>Нифига не понял, кроме того что понял что не понял ваш изнаяальный вопрос. Засим спокойной ночи и желаю вам почетче задавать вопросы, чтоб следующий отвечающий не пытался постичь суть вопроса о смысле вселенной, ваще всего и кнопки close в частности.
Ну, и вам желаю впредь не браться за непосильное, наверняка найдется и что-то для вас доступное. Спокойной ночи, любезный.
Здравствуйте, kero, Вы писали:
K>Почти восстановил учебную утилитку, исходники и пояснения к которой сгинули вместе с ноутбуком (ее тема — window nonclient area и особенности HT-зон), K>но намертво застрял на следующем замечании в MSDN-овской статье "WM_NCHITTEST Notification": K>
HTSYSMENU
K> In a window menu or in a Close button in a child window.
K>Ну никак не получается ни припомнить, ни найти заново пример такой button... Не поможете?
По ходу дела это или системное меню окна, или кнопка Close, но дочернего окна, типа мди-детки. Не оно?
Здравствуйте, kero, Вы писали:
K>Здравствуйте, Carc, Вы писали:
C>>По ходу дела это или системное меню окна, или кнопка Close, но дочернего окна, типа мди-детки. Не оно?
K>Нет, mdi тут не пляшет...
Смущает "or in a Close button in a child window" — как оно вообще может в NCHITTEST определить какую-то абстрактную кнопку в дочернем окне? Ну типа даже если и может, вроде через класс окна, какое-то дико странное решение. Чего б тогда и Edit к примеру не сделать, ну или наоборот почему бы не вынести это в отдельное значение хита?
Здравствуйте, kero, Вы писали:
K>Здравствуйте, Carc, Вы писали:
C>>По ходу дела это или системное меню окна, или кнопка Close, но дочернего окна, типа мди-детки. Не оно?
K>Нет, mdi тут не пляшет...
Не, отбой!. Проверил, MDI тут точно не причем. Но мистика какая-то как и положено с HTSYSMENU на Control Box реагирует... и боле не на что!
Здравствуйте, Carc, Вы писали: C>Смущает "or in a Close button in a child window" — как оно вообще может в NCHITTEST определить какую-то абстрактную кнопку в дочернем окне? Ну типа даже если и может, вроде через класс окна, какое-то дико странное решение. Чего б тогда и Edit к примеру не сделать, ну или наоборот почему бы не вынести это в отдельное значение хита?
Тем не менее я (очень смутно) помню, что когда-то находил живой пример... Если есть желание — вот сохранившийся черновик той утилитки: HTSpy. Может — наведет на какие-то мысли... (хотя скоро выложу и восстановленный вариант).
и получаем чайлда с заголовком (серым, конечно), системным меню и кнопкой Close. Если в это системое меню войти, то можно получить указанную нотификацию при движении по пунктам его. И даже если не входить, а просто над значком системного меню подвигать. А вот от кнопки Close мне получить так и не удалось, там HTCLOSE
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>и получаем чайлда с заголовком (серым, конечно), системным меню и кнопкой Close. Если в это системое меню войти, то можно получить указанную нотификацию при движении по пунктам его. И даже если не входить, а просто над значком системного меню подвигать.
Это все лежит на поверхности...
PD>А вот от кнопки Close мне получить так и не удалось, там HTCLOSE
Так в том и суть!
---
А может, в каких-то прогах из Win1/2/3х?
Где-то же я вроде нашел когда-то...
> PD>А вот от кнопки Close мне получить так и не удалось, там HTCLOSE > > Так в том и суть!
Народ, завязывайте плз такой код с утра писать А то после бессонной ночи с неутомимыми экспериментами на тему "HTSYSMENU где ты, где ты" увидев пост Павла, отложил зубную щетку и помчался экспериментировать спросони дальше! Полтора часа как с куста
Кстати, а сабж не может быть какой-то нездоровой совместимостью со старыми Windows?
Приаттаченная демка SysButton, кажется, только добавляет новый вопрос:
а почему в MSDN-овской справке по HTSYSMENU говорится только о Close button ?
Т.е. эту справку так и продолжаю не понимать...
(Второй аттач — это вспомогательный hittester, набросок, но рабочий).