Re[4]: Copy file instead of move (drag'n'drop)
От: Пётр Седов Россия  
Дата: 25.07.07 12:59
Оценка:
Здравствуйте, ab1111, Вы писали:

A>Решение делается не для себя, а для среднестатистического пользователя. То есть пользователь, не задумываясь, должен получать всегда копирование при перетягивании в конкретную папку. НЕ нажимая при этом доп. клавиш и используя обычное перетягивание левой кнопкой.

Имеет смысл почитать статьи из раздела «Windows Shell».
Также на ум приходит следующее решение. Когда Windows начинает работать, автоматически запускается наша программа. Она показывает окно. У этого окна есть расширенный стиль (extended style) WS_EX_ACCEPTFILES, поэтому на это окно можно перетаскивать файлы из Explorer-а (drag'n'drop-ом), окно при этом получает сообщение WM_DROPFILES. Параметр wParam – это HDROP, из него можно вытащить пути файлов с помощью функции DragQueryFile.
Можно сделать так, чтобы это окно было похоже не на стандартное окно с рамкой (title bar и так далее), а на иконку c текстом. Для этого нужно:
* Указать тип окна WS_POPUP (а не WS_OVERLAPPED; у overlapped-окон всегда есть title bar).
* Сделать окно сложной (то есть не прямоугольной) формы. Есть два способа:
1. Создать GDI-регион (например, с помощью функции ExtCreateRegion) и назначить его окну с помощью функции SetWindowRgn.
2. Начиная с Windows 2000 можно создать layered-окно (расширенный стиль WS_EX_LAYERED) и указать некоторый цвет как «прозрачный» с помощью функции SetLayeredWindowAttributes. Pixel-ы окна «прозрачного» цвета не видны, вместо них виден фон (desktop или другие окна).

Также есть статья «Работа с регионами Windows GDI. Создание непрямоугольных окон.»
Автор(ы): Сапронов Андрей Юрьевич
Дата: 28.05.2003
В статье рассматривается создание непрямоугольных окон с применением регионов Windows GDI. Помимо непосредственного описания создания непрямоугольных окон, описано использование функций WinAPI для работы с регионами, а также соответствующих им методов класса CRgn библиотеки MFC.
.

A>То есть вопрос в категорию "программирование" (или возможно "настройка ОС") но никак в использование Винды для новичков

Тогда да, эту ветку надо перенести в форум «WinAPI».
Пётр Седов (ушёл с RSDN)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.