void __fastcall TForm1::FormCreate(TObject *Sender)
{
long x = GetWindowLong(this->Handle, GWL_EXSTYLE) | WS_EX_ACCEPTFILES;
SetWindowLongPtr(this->Handle, GWL_EXSTYLE, x);
}
Как переташить mp3 на форму?
Как переташить mp3 на форму?
Что значит "перетащить mp3 на форму"?
Если нужно проигрывать аудио, то можно через стандартный компонент MediaPlayer...
когда на форму перетаскиваешь mp3, в Edit->Text должен отображаться путь к файлу(mp3)...
Кого откуда перетаскиваешь?
когда на форму перетаскиваешь mp3, в Edit->Text должен отображаться путь к файлу(mp3)...[/QUOTE]
По-моему, так.
Кидаешь на форму TMemo
В обработчике события OnCreate пишешь:
Код:
В хэдере формы:
Код:
class TForm1 : public TForm
{
__published: // IDE-managed Components
TMemo *Memo1;
void __fastcall ActionToolBar1DragOver(TObject *Sender,
TObject *Source, int X, int Y, TDragState State, bool &Accept);
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
void __fastcall DropFile(TMessage msg);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_DROPFILES, TMessage, DropFile);
END_MESSAGE_MAP(TForm);
};
{
__published: // IDE-managed Components
TMemo *Memo1;
void __fastcall ActionToolBar1DragOver(TObject *Sender,
TObject *Source, int X, int Y, TDragState State, bool &Accept);
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
void __fastcall DropFile(TMessage msg);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_DROPFILES, TMessage, DropFile);
END_MESSAGE_MAP(TForm);
};
В модуле формы:
Код:
void __fastcall TForm1::DropFile(TMessage msg)
{
HDROP hDrop = (HDROP)(msg.WParam);
char FileBuf[1024];
UINT iFile = 0xFFFFFFFF;
UINT cch = sizeof(FileBuf);
UINT FileCount;
FileCount = DragQueryFile(hDrop, iFile, FileBuf, cch);
for(iFile = 0; iFile < FileCount; iFile++)
{
DragQueryFile(hDrop, iFile, FileBuf, cch);
Memo1->Lines->Add(FileBuf);
}
DragFinish(hDrop);
TForm::Dispatch((void*)(&msg));
}
{
HDROP hDrop = (HDROP)(msg.WParam);
char FileBuf[1024];
UINT iFile = 0xFFFFFFFF;
UINT cch = sizeof(FileBuf);
UINT FileCount;
FileCount = DragQueryFile(hDrop, iFile, FileBuf, cch);
for(iFile = 0; iFile < FileCount; iFile++)
{
DragQueryFile(hDrop, iFile, FileBuf, cch);
Memo1->Lines->Add(FileBuf);
}
DragFinish(hDrop);
TForm::Dispatch((void*)(&msg));
}
Возможные ошибки в коде, надеюсь, сам исправишь. Ну и ВинАмп или другой плейер прикрутишь при необходимости, равно как и фильтр файлов по расширению.
[URL="http://forums.realcoding.net/index.php?showtopic=7652&hl=drag'n'drop"]http://forums.realcoding.net/index.php?showtopic=7652&hl=drag'n'drop[/URL]
[URL="http://forums.realcoding.net/index.php?showtopic=7652&hl=drag'n'drop"]http://forums.realcoding.net/index.php?showtopic=7652&hl=drag'n'drop[/URL][/QUOTE]
Глянуть-то можно, но делать так, как там написано, не нужно.
Спасибо всем...я уже сам розобрался.