Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

TOutline - Перетащи и брось

Delphi , Синтаксис , Drag and Drop

TOutline - Перетащи и брось

Приходит один фидошник к другому на День Рождения. Приносит открытку, навороченная такая, обалденно красивая, на ней написанно: "Поздравляю С Днем Рождения" такими красивыми буквами... Именинник открывает открытку, а там большими карявыми буквами написанно: "САБЖ".

Вам нужно перехватывать в TOutline сообщение wm_DropFiles. Для этого необходимо создать его потомка. Также, вы должны убедиться в том, что дескриптор TOutline Handle хотя бы раз передавался в качестве параметра функции DragAcceptFiles. Для определения положения мыши в момент перетаскивания используется DragQueryPoint. Если вы прочтете разделы в WINAPI.HLP по DragAcceptFiles, wm_DropFiles, DragQueryFile, DragQueryPoint и DragFinish, то вы поймете, как все это работает.

Here's the translation of the provided text into Russian:

Похоже, вы пытаетесь реализовать функциональность Drag-and-Drop в TOutline с помощью функций Windows API. В частности, вы хотите поймать сообщение wm_ DropFiles и создать дочернее окно для отображения переданных файлов.

Чтобы достичь этого, вам нужно:

  1. Создать handle окна (THandle) для вашего контроля TOutline.
  2. Позвонить функции DragAcceptFiles с handle окна как параметром, чтобы включить функциональность Drag-and-Drop.
  3. Обработать сообщение wm_ DropFiles, создав дочернее окно и отображая переданные файлы.

Вот некоторые примеры кода для начала:

THandle hOutline; // Handle окна вашего контроля TOutline

// Включить функциональность Drag-and-Drop
DragAcceptFiles(hOutline, TRUE);

// Обработать сообщение `wm_ DropFiles`
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
    case WM_DROPFILES:
        // Получить handle переданных файлов
        HDROP hDrop = (HDROP)wParam;

        // Создать дочернее окно для отображения переданных файлов
        HWND hWndChild = CreateWindowEx(0, WC_STATIC, "", WS_CHILD | WS_VISIBLE,
            10, 10, 200, 20, hOutline, (HMENU)1, NULL, NULL);

        // Отобразить имена переданных файлов в дочернем окне
        TCHAR szFile[256];
        UINT cFiles = DragQueryFile(hDrop, 0xFFFFFFFF, szFile, sizeof(szFile));
        for (UINT i = 0; i < cFiles; i++)
        {
            SendMessage(hWndChild, WM_SETTEXT, 0, (LPARAM)szFile);
        }

        // Очистить
        DragFinish(hDrop);

        break;
    default:
        return DefWindowProc(hWnd, msg, wParam, lParam);
    }
}

В этом примере мы создаем дочернее окно с помощью CreateWindowEx и отображаем имена переданных файлов в нем. Мы также вызываем функцию DragQueryFile, чтобы получить количество переданных файлов и их имена.

Помните, что вам нужно зарегистрировать ваш класс окна с помощью структуры WNDCLASSEX и создать экземпляр окна с помощью CreateWindowEx. Вы также должны обрабатывать другие сообщения окон, такие как WM_MOUSEMOVE, чтобы определить позицию мыши во время операции Drag-and-Drop.

Для получения дополнительной информации о функциях Windows API, использованных в этом примере, я рекомендую проверить официальную документацию для:

  • DragAcceptFiles
  • wm_ DropFiles
  • DragQueryFile
  • DragQueryPoint
  • DragFinish

Эти функции помогут вам понять, как реализовать функциональность Drag-and-Drop в вашем контроле TOutline.

В статье описывается использование функций TOutline для перехвата сообщения wm_DropFiles и перетаскивания файлов, а также указываются необходимые шаги для реализации данной задачи.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Drag and Drop ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 17:03:36/0.010536909103394/2