ページ 11

ドラッグされた実行ファイルのアイコンを描画

Posted: 2005年11月23日(水) 18:21
by 少年1
ドラッグされた実行ファイルのアイコンを
コマンドボタン(CommandButton2)に描画したいのですが
どうも上手く行きません。
どこを直せばいいのでしょうか?教えてください
Ver 4.11.02
Sub MainWnd_DropFiles(hDrop As HDROP)
dim fp as String
dim hEdit2 as HANDLE
dim hCB as HWND

fp=ZeroString(256)
DragQueryFile(hDrop,0,fp,256)
ExtractIconEx(fp,0,hBigIcon,0,1)
hCB=GetDlgItem(hMainWnd,CommandButton2)

SendMessage(hCB,BM_SETIMAGE,IMAGE_ICON,hBigIcon)

End Sub
エラーなども起きないのですが
描画もされません;;
よろしくお願いします

Posted: 2005年11月23日(水) 18:36
by hira
http://www.program-lab.jp/blog/progmemo ... iesso.html
↑によると「アイコン」スタイルを追加する必要があるようです。
ActiveBasicのRADでもこのスタイルに対応していますので、チェックを入れてみて下さい。

返信ありがとうございます

Posted: 2005年11月23日(水) 19:00
by 少年1
「アイコン」スタイルはRADできちんとチェックされている状態なのですが...
プログラムの間違いでしょうか?

Posted: 2005年11月23日(水) 22:04
by Toshi

コード: 全て選択


ExtractIconEx(fp,0,hBigIcon,0,1)

ヘルプによると、第 3 引数は
phiconLarge
32ビット整数型配列へのポインタを指定します。この配列に、大きいアイコンのハンドルが格納されます。不要なときは、NULL を指定します。
だそうなので、hBigIcon へのポインタを渡す必要があります。なので、

コード: 全て選択


ExtractIconEx(fp,0,VarPtr(hBigIcon),0,1)

としてポインタを渡す様にすれば正常に動作します。