goo blog サービス終了のお知らせ 
goo

ツールバーの作成方法

◆一覧リスト
HSP Ver3.0
HSP Ver2.61
ブログ関連
その他
★人気blogランキング

「ツールバーの作成」
作成方法 其の壱 「CreateToolbarEx」関数
1.「InitCommonControls」関数で前準備
コモンコントロールダイナミックリンクライブラリ(DLL)が、
ロードされた状態にあることを保証します。
//例)
#uselib "comctl32.dll"
#func InitCommonControls "InitCommonControls"
InitCommonControls
2.「CreateToolbarEx」関数でツールバーを作成
//例)引数が13もあります
#uselib "comctl32.dll"
#func CreateToolbarEx "CreateToolbarEx" int,int,int,int,int,int,sptr,int,int,int,int,int,int
引数
①親ウィンドウのハンドル
②ツールバーのウィンドウスタイル
③ツールバーのID
④ボタンイメージの数
⑤モジュールのインスタンス
⑥ビットマップイメージのID
⑦ボタン情報(TBBUTTON構造体)のポインタ
⑧ボタンの数
⑨ボタンの幅
⑩ボタンの高さ
⑪ボタンイメージの幅
⑫ボタンイメージの高さ
⑬TBBUTTON構造体のサイズ
戻り値(stat)にツールバーのハンドルが返ります。
システム変数を使用して①に「hwnd」⑤に「hinstance」を指定。
②のウィンドウスタイルは
「WS_CHILD:(0x40000000)」「WS_VISIBLE:(0x10000000)」の0x50000000を指定。
③はとりあえず0を指定。
⑪、⑫は0を指定。⑬は20を指定。
と適当に指定します。
また、ボタンの数⑧やイメージの数④などは簡単です。
⑨、⑩もボタンのサイズを指定。
⑥はビットマップのハンドルを指定。
「LoadImage」関数で取得。
//例)
#uselib "user32.dll"
#func LoadImage "LoadImage" int,sptr,int,int,int,int
引数は6 戻り値(stat)はイメージのハンドル
①インスタンスハンドル
②ロードするイメージの文字列ポインタ
③「IMAGE_BITMAP:(0x00)」等を指定
④イメージの幅
⑤イメージの高さ
⑥「LR_SHARED:(0x8000)」「LR_LOADFROMFILE :(0x0010)」等を指定

残るは、「TBBUTTON」構造体です。

「TBBUTTON」構造体について
dim TBButton , 5 としたとき、
TBButton(0)=iBitmap //ボタンイメージのインデックス
TBButton(1)=idCommand //WM_COMMANDで使用するID
TBButton(2)=fsState(1バイト)+fsStyle(1バイト)+bReserved(1か2バイト)
fsState:「TBSTATE_ENABLED:(0x04)」等
fsStyle:「TBSTYLE_BUTTON: (0x00)」等
TBButton(3)=dwData //アプリケーション定義の値(0でも可)
TBButton(4)=iString //ボタンに使用する文字変数のポインタ
上記をボタンイメージの数だけ作成します。例えば、3つのボタンの場合、
dim TBButton , 5 , 3
とします。
3.「TB_AUTOSIZE:(0x0421)」でサイズ調整
//例)
#uselib "user32.dll"
#func SendMessageA "SendMessageA" int,int,int,int

SendMessageA htoolbar , 0x0421 , 0 , 0

ツールバー使用画像 「toolbar.bmp」 96×32
作成方法 其の壱 サンプル ソースコード
#uselib "comctl32.dll" 
#func InitCommonControls "InitCommonControls" 
#func CreateToolbarEx "CreateToolbarEx" int,int,int,int,int,int,sptr,int,int,int,int,int,int 

#uselib "user32.dll"
#func LoadImage "LoadImageA" int,sptr,int,int,int,int
#func SendMessage "SendMessageA" int,int,int,int

InitCommonControls

sdim string,260
string="toolbar.bmp"

LoadImage 0,varptr(string),0,96,32,0x8010
himg=stat
if himg==0 : dialog "LoadImage error" : stop

dim tb , 5 , 3
tb(0,0)=0:tb(1,0)=2000:poke tb,8,0x04:poke tb,9,0x00:tb(3,0)=0:tb(4,0)=0
tb(0,1)=1:tb(1,1)=2001:poke tb,28,0x04:poke tb,29,0x00:tb(3,1)=0:tb(4,1)=0
tb(0,2)=2:tb(1,2)=2002:poke tb,48,0x04:poke tb,49,0x00:tb(3,2)=0:tb(4,2)=0

CreateToolbarEx hwnd,0x50000000,0,3,0,himg,varptr(tb),3,32,32,0,0,20
htoolbar=stat
SendMessage hToolbar, 0x421, 0, 0; TB_AUTOSIZE

stop
コメント ( 0 ) | Trackback ( 0 )
« ツールバーの... ステータスバ... »
 
コメント
 
コメントはありません。
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。