Изображение для отображения при перетаскивании - PullRequest
0 голосов
/ 10 декабря 2010

Я реализую перетаскивание кнопки в приложении Windows. Во время перетаскивания я хочу отобразить эффект перетаскивания.Я думаю, что изображение кнопки будет уместным для отображения во время перетаскивания.

Также я думаю, что курсор должен быть изменен во время перетаскивания.

Мои сомнения: Как захватить изображение кнопки и отображать приперетаскивание.Какой тип курсора должен отображаться при перетаскивании.

Приложение на C ++, win32.

1 Ответ

0 голосов
/ 10 декабря 2010
  1. Перетащите изображение:

    Если это стандартный кнопочный элемент управления, вы можете использовать WM_PRINT или WM_PRINTCLIENT , чтобы попросить его нарисовать себя в GDI HDC (то есть в растровое изображение, которое вы затем использовать в качестве drag-image).

    Обратите внимание, что не все элементы управления поддерживают эти сообщения, и некоторые из них поддерживают их немного по-разному. Иногда вам нужно немного поэкспериментировать или использовать собственные пути кода для различных элементов управления.

    Другой способ - нарисовать кнопку самостоятельно, используя API визуальных стилей (тем), с откатом DrawFrameControl , когда темы отключены. Но это гораздо более утомительно, чем использование WM_PRINT / WM_PRINTCLIENT, если вам это не нужно.

  2. Курсор:

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

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