Добросовестные переходные окна с WinAPI? - PullRequest
0 голосов
/ 26 мая 2010

Я хочу создать окно, например, когда всплывает контекстное меню или щелкает меню. Я хочу окно, которое будет таким, и которое я смогу перенести на событие рисования. Вроде как то, что создается, когда вы выбираете вспомогательный инструмент в Photoshop.

РЕДАКТИРОВАТЬ: я хочу знать, как создавать элементы управления, такие как тот, который появляется, когда вы выбираете вспомогательный инструмент в Photoshop, у них, похоже, нет родительского окна. Эти маленькие всплывающие окна описания являются хорошим примером окна этого типа, а у пунктов меню эти прямоугольники не имеют родительского окна. Спасибо

EDIT2: см. Это: http://cdn -viper.demandvideo.com / media / CB3C805F-421E-45AE-8359-39D59D8F0165 / jpeg / 20412728-192C-462A-AF8E-1F30BA77AE05_2.jpg

Вы заметите окно для вспомогательных инструментов, оно не ограничено родительским окном.

1 Ответ

2 голосов
/ 26 мая 2010

Но как они получают хорошую тень? вокруг этого, и как это все еще остается с главным окном без родителя?

Это ваш настоящий вопрос.

  1. Есть несколько способов получить тень. Во-первых, это фактически два окна: «тень» и «главное» окно.

  2. Когда вы создаете всплывающее окно (так оно называется), вы помещаете его рядом с панелью инструментов. Если на панели инструментов появляется сообщение WM_MOVE, вы обязаны вызвать MoveWindow() во всплывающем окне, чтобы выровнять его.

Отредактировано для добавления

Параметр dwExStyle CreateWindowEx() должен включать WS_EX_LAYERED и, вероятно, WS_EX_TRANSPARENT, потому что для тени будет использоваться альфа-смешение Параметр hWndParent является основным окном приложения. Параметры x и y должны быть рассчитаны как смещение любой кнопки, с которой должно быть связано окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...