• ベストアンサー

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

  • アイコンにドラッグアンドドロップ

    VisualStudio 2005 で c++でダイアログベースのアプリケーションを作成しています。 ファイルをアイコンにドラッグアンドドロップして開くということをやりたいのですが、ファイルを開いたときにエラーが発生してしまいうまくいきません。対処方法を教えてください。 ソースファイル ::OnInitDialog(){ : : : : // TODO: 初期化をここに追加します。 DragAcceptFiles(); char *p = AfxGetApp()->m_lpCmdLine; CFile fin; if(p[0]!=NULL){ AfxMessageBox(p); fin.Open(FileName, CFile::typeBinary | CFile::modeRead | CFile::modeNoTruncate); } AfxMessageBox(p)でドロップしたファイルのパスは表示できています。

  • VisualC++6.0 で main関数への引数

    #include<stdio.h> int main(int argc,char *argv[]) {   FILE *fp;   fp=fopen("abc.txt","w"); } こんな感じの xyz という名前のプログラムがあります。 MS-DOSで、xyzと同じディレクトリから   xyz tekitou リターン と打ち込んでプログラムを起動させたらxyzと同じディレクトリの中に abc.txtを作成してくれます。xyz.exeのダブルクリック起動でも 同様の結果です。 だけどxyz.exeのアイコンの上に適当なファイルを ドラッグ&ドロップさせて起動させた場合 abc.txtは全然別の場所に作成されてしまいます。 正確に言うと、Windows98上でVisualC++6.0を使用して 上記のプログラムでデスクトップ上にxyz.exeを作成して (C:\WINDOWS\デスクトップ\xyz.exeの)アイコンに 適当なファイルをD&Dしてプログラムを実行したらC:\にabc.txtが できたということです。 私としては同じディレクトリ内に作成してくれなくては 都合が悪いのです。この現象が起きる理由あるいは 解決法をご存知の方がいらっしゃいましたらどうかよろしく お願いします。

  • ドラッグ&ドロップについてです。(VB.NET)

    フォーム上に「PictureBox」コントロールを置いた状態で実行し、その「PictureBox」にデスクトップ等からファイルやフォルダをドラッグ、ドロップしまして、そのファイルやフォルダのパス名を取得するにはどうすればいいですか? そのプログラムのサンプルがあるサイトでもいいです。

  • VISUALC++6.0スタンダード版について

    プログラミングのレポートがでたのですがVISUALCは使ったことがなくてさっぱりわかりません。BORLANDCをつかって勉強したことがかなり昔にあるんですがその時はファイル新規作成してプログラムをうって実行させるとエラーまたは結果がでてました。でもVISUALCだとプロジェクトやらなんやらさっぱり解かりません。適当にしてるとファイルがないとかエラーがでるわけないのにエラーが出たりとか実行結果が出なかったりとわけわかりません。プログラミング自体ほとんど初心者です。3乗根をN-R法で求めるプログラムを直ちにつくらないといけないのですがVISUALCの使い方がさっぱりわからず焦ってます。とりあえず #include<stdio.h> int main() { printf("rarara\n"); } というプログラムさせ動かし方がわかりません。 どなたかアドバイスおねがいします。説明書読んでも分厚すぎるし時間がないしで メチャ困ってます。初心者でホントすいませんがおねがいします

  • exeファイルにドラッグすることで動作するプログラム

    現在、exeファイルのアイコンにデータファイルをドラッグすることで、プログラムを動かし、データファイルを読み込んで処理するプログラムをVisualC++2008ExpressEdtionで作成しています。 ここで質問が2つあります。 <質問1>  データファイル名に日本語(2バイトコード)が含まれている場合、CreateFile関数でエラーとなります。ファイル名に日本語を含む場合どのようにすればよいか教えてください。 <質問2>  現在作成しているプログラムでは、処理結果をファイルに出力しています。出力ファイルのフォルダをexeファイルのある場所にしたいのですが、プログラムコード上で相対パスで指定すると、上手く動きません(別フォルダに出力ファイルが作成されます)。ドラッグによってexeファイルを起動する場合、exeファイルのあるフォルダを知るにはどうしたらよいのでしょうか?

  • Microsoft VisualC++6.0

    こんばんは 質問よろしいでしょうか? Microsoft VisualC++6.0を使ってプログラムを作っているのですがコンパイルすると実行ファイルができます。そのとき一般に公開するためダウンロードできるようにしようと思い圧縮したのですが、たしかVisualC++には実行ファイルを配布用にファイルサイズを軽くできたと友人から聞いたのですがやり方がわかりません。どなたかご教授お願いします。自分なりに探したのですがわからなくて困っております。よろしくお願いします。

  • VisualC++.netの実行ファイル(.exe)

    VisualC++.netを今日インストールしたばかりです。どうにかこうにかプログラムを実行してみたのですが、デバッグが開始されず、実行ファイル(.exe)も作成されません。VisualC++.6.0で作ったプログラムで、エラーも出なかったものなので、プログラムに問題はないはずなのですが・・・一体何が問題なのでしょうか。誰か教えて下さい。本当に困っています・・・

  • アイコンへのドラッグ&ドロップができません。

    いつもお世話になっています。 フォトショップ6のエイリアスアイコンをボタンにして使っています。 フォトショップ6をインストールし直してから、クイックタイムの絵のjpgアイコンをドラッグ&ドロップしてもフォトショップが起動しません。 アイコンの上に乗せた時に通常はアイコンの色が反転すると思うのですが、反転すらしません。 フォトショップ自体はふつうに動いており、「ファイル」→「開く」から開けば反応します。 epsのデータにはちゃんと反応します。 何かの設定でしょうか? インストールの状態が悪かったのでしょうか 解決方法をおしえてください よろしくお願い致します

  • visualC++について

    初心者なのでよろしくお願いします。 携帯電話へ音楽ソフトをコピーする際に付属の「SD-Jukebox V6」というプログラムを使用していたのですが、久しぶりに使用しようとしたところ、 Microsoft VisualC++ Runtime Library のウィンドウが表示され、 Runtime Error! プログラムの名前 abnormal program termination と表示され、プログラムが起動できませんでした。 以前は問題なく動作していたので理由がわからず、解除の仕方もわかりません。どうすれば使用できるようになるのでしょうか? よろしくお願いします。

  • VisualC#でデータの読み込み

    VisualC#の超初心者でプログラミングも初めてです。 文字や数値(整数や小数点あり)の大量データ(テキストファイル)から最大値や最小値等を求めるプログラムを作りたいのですが、まずデータの読み込みがよくわかりません。 Cの本やVisualC#の本を買って読んでいますが、いまひとつ理解できません。 また、CとC#の違いもよくわかりません。 よろしくお願いします。

専門家に質問してみよう