- ベストアンサー
c:\をドラッグ&ドロップしたい
taka_tetsuの回答
>DragAcceptFiles,DragQueryFile,DragFinish及びWM_DROPFILES どうもこれでは無理のようです。 COMの知識が必要になります。 IDropTargetインターフェイスを実装し、IDropTarget::DragOver()で DROPEFFECT_COPYを返さないとドライブは受け取れないようです。
関連するQ&A
- VC++でドラッグドロップ
いつもお世話になっております。 今回はドラッグ&ドロップについてお聞きしたいです。 リストボックスにフォルダをドラッグしてそのフォルダの中身を リストに表示するというものを作りたく、ネットでいろいろ調べた所 以下のように作りました。 ResourceViewでドロップドラッグを許可にチェックを入れる case WM_CREATE: DragAcceptFiles(::GetDlgItem(hWnd, IDC_LIST1), TRUE); return TRUE; case WM_DROPFILES: { // ドロップされた内容を取得 hdrop = (HDROP)wParam; DWORD dwSize; CHAR szPath[MAX_PATH+1]; ZeroMemory(szPath, sizeof(szPath)); int num = ::DragQueryFile(hdrop, -1, NULL, 0); for (int i = 0; i < num; i++);{ dwSize = ::DragQueryFile(hdrop , i, szPath, MAX_PATH+1); if (dwSize <= 0) //取得失敗 { return FALSE; } else{ //以下にszPathから中身を表示させる処理 ・・・} 以上のようにするとドラッグしたファイルの数は 正しく取得しているのですがファイル名を得る関数部分で 1.i=0としているのに、最初からi=numの数になってしまう 2.二つ目のDragQueryFileのiを1にしても戻値(ファイル名のサイズ)は 0となって取得していない となってしまいます。 なぜこのようになってしまうのか、ご教授願います。 環境はVisual C++6.0 OSは windowsXP SP2です
- ベストアンサー
- C・C++・C#
- ドラッグ&ドロップの極意
CreateWindow で作成されたウインドウに対し、メッセージループ内で case WM_CREATE 以下に、 DragAcceptFiles を指定、case WM_DROPFILES にて ShellExecute なりの処理を書けば、メモ帳などが 開くのはわかるのですが、その際、中身のテキスト文字を全部配列変数に入れるとして、 効率のいいプログラミングサンプルはないでしょうか。 ドロップしたら、ファイル名とパス名を取得して、fopen などで、頭から一行ずつ読むのが一般的 なんでしょうか。 例えば、 abc.txt に以下のように続くとします。 000000000 082394099 111553021 339400191 498585000 333399999 280839000 ・ ・ ・ ・ スマートなプログラミングって教えてほしいです。 環境は VC++ Ver6 SDK です。
- 締切済み
- C・C++・C#
- ドラッグアンドドロップでHTMLファイル上の画像ファイルのパスを取得
IEなどのブラウザに表示されたHTMLファイル上の画像ファイル(jpeg or gif)を ドラッグアンドドロップして、画像ファイルのWeb上のパスを得たいと考えています。 現在、以下コードで試していますが、PCに保存されたローカルパス+ファイル名が 帰ってきます。なんとかして画像ファイルのWeb上のパスを取得できないでしょうか。 【例】http://www.abc.co.jp/aaa.jpgなど こちらの環境はWindowsXP HomeEdition + C++ builder6 proです。 //Dropの設定 DragAcceptFiles(Handle,true); //--------------------------------------------------------------------------- void __fastcall TForm2::DropFiles(TWMDropFiles inMsg) { char fName[255]; int Count = DragQueryFile((HDROP)inMsg.Drop,0xffffffffF, fName, 255); //Dropされたファイル名を得る for(int i=0;i<Count;i++){ DragQueryFile((HDROP)inMsg.Drop,i,fName,255); ListBox1->Items->Add(fName); } DragFinish((HDROP)inMsg.Drop); } 宜しくお願いいたします。
- 締切済み
- C・C++・C#
- ドラッグ & ドロップのメッセージについて
ドラッグドロップをおこなったときに、ウィンドウメッセージからどのようにして判断すればよいのでしょうか? クリックの場合はWM_LMOUSEUPなどが2回連続で配信される等で検討がつくのですが、ドラッグドロップの場合は検討がつきません なにかいい方法があれば教えてください。 よろしくお願いします
- 締切済み
- C・C++・C#
- ドラック&ドロップができない
新しくVistaのパソコンを買ったのですがそのパソコンでは ドラック&ドロップで別のプログラムに移行できないのです。 どういうことかと言うと、インターネットでアドレスをドラックして、すでにツールバー上に開かれている別のプログラムにドロップしようと してもウインドウが別のウインドウの下になったままホップアップし てくれないのです。以前のパソコンでは、できた動作なのでなぜ出来 ないのかがわかりません。 どなたか、どうすればドラック&ドロップできるようになるか、ご存知でしたら教えてください。
- 締切済み
- Windows Vista
- ドラッグ&ドロップについてです。(VB.NET)
フォーム上に「PictureBox」コントロールを置いた状態で実行し、その「PictureBox」にデスクトップ等からファイルやフォルダをドラッグ、ドロップしまして、そのファイルやフォルダのパス名を取得するにはどうすればいいですか? そのプログラムのサンプルがあるサイトでもいいです。
- ベストアンサー
- Visual Basic
- ファイルをDrag&Dropされている最中を知る
こんにちは。 Win32でプログラムをしています。 DragAcceptFilesでTRUEを指定することでファイルがドラッグアンドドロップされたことを知ることができますが、ドラッグアンドドロップされようとしている最中を知ることはできないのでしょうか? エクスプローラからファイルをドラッグアンドドロップしようとして、マウスの左ボタンを放すまでのマウスの操作を知りたいのですが、WM_MOUSEMOVEは届いていないようです。 何か方法はないものでしょうか。
- 締切済み
- C・C++・C#
- 【C#】ドラッグ&ドロップについて
前にも質問したのですが、行き詰まったのでもう一度質問します。 (1)リッチテキストボックスにテキストファイルをドラッグ&ドロップする。 (2)そのテキストファイルの内容をリッチテキストボックスに表示する。 というプログラムを作っています。 このうち(1)についてはほぼ解決したのですが、(2)についてはさっぱりです。(つまり、DragDropイベントの部分がわかりません。) どなたか教えて下さい。
- ベストアンサー
- その他(プログラミング・開発)
- VB6でのドラッグ&ドロップについてです
VB6でのことなんですが、リネームツールを作ろうと思って色々やってるのですが、うまくいきません。 フォルダをドラッグ&ドロップをして、 text1にフォルダの中のファイル名を表示して、text2にファイル名をコピーしてリネーム、というようなものを作りたいと考えています。 フォルダをドラッグ&ドロップして表示されるのが、そのフォルダのフルパスになってしまいます。 ドラッグ&ドロップしたフォルダの中のファイル名だけを表示する方法はどうすればいいのでしょうか? よろしくお願いします。
- ベストアンサー
- Visual Basic
- C++Builder 6 でドラッグ&ドロップ通知を
C++Builder 6 のEditBoxでドラッグ&ドロップ通知を受け取るのはどのプロパティをtrueにしたらいいのでしょうか? 宜しくお願いいたします。
- ベストアンサー
- C・C++・C#
お礼
MFCですね。 だとすればBorlandでAPIを使っているものとしてはお手上げですね。 ありがとうございました。