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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
少年1

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

#1 投稿記事 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
エラーなども起きないのですが
描画もされません;;
よろしくお願いします
hira
記事: 203
登録日時: 2005年5月31日(火) 20:14
お住まい: 兵庫県
連絡する:

#2 投稿記事 by hira »

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

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

#3 投稿記事 by 少年1 »

「アイコン」スタイルはRADできちんとチェックされている状態なのですが...
プログラムの間違いでしょうか?
Toshi
記事: 98
登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
連絡する:

#4 投稿記事 by Toshi »

コード: 全て選択


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

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

コード: 全て選択


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

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