ファイルアイコンをドラグ&ドロップして貼り付けたい

[戻る]
haruko 2006/07/06(木) 18:14:51
ディスクトップなどのファイルアイコンをドラッグして、ウィンドウに貼り付けたいと思ってい
ます。ビュークラスにWM_DROPFILESメッセージのハンドラを追加しましたが、うまくいきませ
ん。
OnDropFiles(HDROP hDropInfo)
同じくフレームクラスにハンドラを追加して、DragAcceptFoles(TRUE)関数を追加すると、フ
ァイルが開いてしまいます。アイコンのみを貼り付けたいのですが、どのようにすれば良いので
しょうか。
超初心者ですいません。よろしくお願いいたします。
環境は、VC6++,MFC,WIN98です。

超初心者 2006/07/06(木) 23:13:46
面倒な気がする。
D&DだとWM_DROPFILESでファイルパスが得られるけど、
そこから色々努力しないといけなそう。

EXEなどならリソースの最初にあるアイコンだな。

TXTやDLLとかの拡張子は関連付けから得るのかな。
方法は知りません。

ショートカットからアイコンを得る方法は知りません。
ショートカットはリンク先のEXEとは別のファイルのアイコンをつけられるし、
小さい矢印がついてたりなかったり。

こんな具体的な方法ではない回答ですみません。

moto 2006/07/14(金) 19:30:37
SHGetFileInfo でアイコンの取得ができると思いますよ。

SHFILEINFO shfi;
SHGetFileInfo(ファイル名, FILE_ATTRIBUTE_ARCHIVE, &shfi, sizeof(SHFILEINFO), 
SHGFI_ICON);

などで、SHFILEINFO を取得して、後は、shfi.hIcon にアイコンのハンドルが入るので、
DrawState などで表示できると思います。

古いスレッドには追加発言できません。