• ベストアンサー

VisualC++6.0 で アイコンのドラッグ&ドロップ

 デスクトップ上のデータファイルアイコンを 実行ファイルにD&Dして起動し、起動したプログラムから データファイルのフルパスを得たいと思っています。  VisualC++6.0を使用して、ダイアナログベースで 作成しています。DragAcceptFiles、OnDropFiles 等を使うと思うのですが、使い方が分かりません。  初心者ですがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • osaosa42
  • ベストアンサー率60% (20/33)
回答No.3

ダイアログベースのアプリケーションならCWinAppのクラスのInitInstance()内に AfxMessageBox(theApp.m_lpCmdLine); を加えてビルドしてEXEを作成してください。 で、そのEXEのアイコンにファイルのアイコンをドロップしてみてください。 メッセージボックスにファイル名が表示されるはずです。

namnam
質問者

お礼

 早速作ってみたところ、見事に表示されました。 どうもありがとうございます。  これから、C++を勉強しまして、レベルを上げてから 質問したいと思います。

その他の回答 (2)

  • osaosa42
  • ベストアンサー率60% (20/33)
回答No.2

EXEのアイコンにファイルのアイコンをD&Dするんでいいんでしょうか? もしそうなら、 「theApp.m_lpCmdLine」からコマンドライン引数でドロップしたファイル名が取れます。 (theAppは、CWinApp) 質問を取り違えていたらすんません。

namnam
質問者

補足

 初歩的な質問ですいません。 コマンドライン引数とはint main(int argc,char *argv[]) このようなメイン関数のことでしょうか? もしそうでしたら、ダイアログベースででのメイン関数への 記述方法を教えて欲しいのですが・・・。 よろしくお願いします。

noname#30871
noname#30871
回答No.1

 「猫でもわかるプログラミング」という有名なサイトに載っています。  ただしこれはSDKベース(自分でメッセージ(イベント)を振り分ける)なので、その点は意識してください。  たとえばOnDropFiles()に相当する処理は、この例でのswitch文の“case WM_DROPFILES:”以下に相当します。

参考URL:
http://users-web1.iac.ne.jp/~yasutaka/c_lang/sdk2/sdk_105.htm
namnam
質問者

補足

 少ししか、見ていないのですが、自分に最適な サイトを教えていただきありがとうございます。  まだ、質問内容自体は、解決してないのですが、 このサイトを、根気よく見ていけば、時が解決して くれそうな気がします。

関連するQ&A