通知
すべてクリア
Topic starter
2006年7月6日 6:14 PM
ディスクトップなどのファイルアイコンをドラッグして、ウィンドウに貼り付けたいと思ってい
ます。ビュークラスにWM_DROPFILESメッセージのハンドラを追加しましたが、うまくいきませ
ん。
OnDropFiles(HDROP hDropInfo)
同じくフレームクラスにハンドラを追加して、DragAcceptFoles(TRUE)関数を追加すると、フ
ァイルが開いてしまいます。アイコンのみを貼り付けたいのですが、どのようにすれば良いので
しょうか。
超初心者ですいません。よろしくお願いいたします。
環境は、VC6++,MFC,WIN98です。
2006年7月6日 11:13 PM
面倒な気がする。
D&DだとWM_DROPFILESでファイルパスが得られるけど、
そこから色々努力しないといけなそう。
EXEなどならリソースの最初にあるアイコンだな。
TXTやDLLとかの拡張子は関連付けから得るのかな。
方法は知りません。
ショートカットからアイコンを得る方法は知りません。
ショートカットはリンク先のEXEとは別のファイルのアイコンをつけられるし、
小さい矢印がついてたりなかったり。
こんな具体的な方法ではない回答ですみません。
2006年7月14日 7:30 PM
SHGetFileInfo でアイコンの取得ができると思いますよ。
SHFILEINFO shfi;
SHGetFileInfo(ファイル名, FILE_ATTRIBUTE_ARCHIVE, &shfi, sizeof(SHFILEINFO),
SHGFI_ICON);
などで、SHFILEINFO を取得して、後は、shfi.hIcon にアイコンのハンドルが入るので、
DrawState などで表示できると思います。