by Tomorrow » 2006年12月01日(金) 00:48
LuxMenuを試しつつ、やってみたら案外あっさりできました。
...が、個人的に試してみただけの非公式情報です。
ですので、これで合っているかは分かりません。
自己責任で御使用願います。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]はじめに
LuxToolbar.sbpをインクルードする。
コード: 全て選択
#include <LuxCtrl\LuxCtrl.sbp>
とすると一発でLuxMenuもインクルードできる。
グローバル領域で
コード: 全て選択
'ILuxToolbarインターフェイスポインタ
Dim pILuxToolbar As *ILuxToolbar
Createイベントで
コード: 全て選択
'LuxToolbarコンポーネントのインスタンスを生成
pILuxToolbar = LuxToolbar_CreateInstance()
'コントロールを作成
pILuxToolbar -> Create(hMainWnd)
'ボタンを追加
pILuxToolbar -> Add(IDM_OPEN, LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(IDI_OPEN), IMAGE_ICON, 16, 16, 0), "開く(&O)")
pILuxToolbar -> Add(IDM_SAVE, LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(IDI_SAVE), IMAGE_ICON, 16, 16, 0), "保存(&S)")
pILuxToolbar -> Add(NULL, NULL, NULL)
pILuxToolbar -> Add(IDM_OPTION, LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(IDI_OPTION), IMAGE_ICON, 16, 16, 0), "オプション(&O)")
pILuxToolbar -> Add(NULL, NULL, NULL)
Destroyイベントで
コード: 全て選択
'インスタンスを破棄
pILuxToolbar -> Release()
試してみるとわかるのですが、最後に追加したボタンが何故か表示されません。
ボタンの計数処理とサイズ計算に食い違いがあるみたいなのですが、
ソースの修正は面倒なので、最後に余分なセパレータを入れて誤魔化しています。
他のインターフェイスメソッドについては、おおよそ↓のような感じだと思います。
Function GetHandle() As HWND
コントロールのウィンドウハンドルを取得
Sub Insert(index As Long, id As Long, hIcon As HICON,lpszToolTip As LPSTR)
indexの場所にボタン追加
Sub Clear()
ボタンを全削除
Sub EnableItem(id As Long, bEnabled As BOOL)
淡色表示にする/しない
Sub GetSize(ByRef size As SIZE)
コントロールのサイズを取得
Sub OnRButtonUp(flags As DWord, ByRef pos As POINTAPI)
?
LuxMenuを試しつつ、やってみたら案外あっさりできました。
...が、個人的に試してみただけの非公式情報です。
ですので、これで合っているかは分かりません。
自己責任で御使用願います。
[hide][b]はじめに[/b]
LuxToolbar.sbpをインクルードする。
[code]#include <LuxCtrl\LuxCtrl.sbp>[/code]
とすると一発でLuxMenuもインクルードできる。
[b]グローバル領域で[/b]
[code]'ILuxToolbarインターフェイスポインタ
Dim pILuxToolbar As *ILuxToolbar[/code]
[b]Createイベントで[/b]
[code]'LuxToolbarコンポーネントのインスタンスを生成
pILuxToolbar = LuxToolbar_CreateInstance()
'コントロールを作成
pILuxToolbar -> Create(hMainWnd)
'ボタンを追加
pILuxToolbar -> Add(IDM_OPEN, LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(IDI_OPEN), IMAGE_ICON, 16, 16, 0), "開く(&O)")
pILuxToolbar -> Add(IDM_SAVE, LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(IDI_SAVE), IMAGE_ICON, 16, 16, 0), "保存(&S)")
pILuxToolbar -> Add(NULL, NULL, NULL)
pILuxToolbar -> Add(IDM_OPTION, LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(IDI_OPTION), IMAGE_ICON, 16, 16, 0), "オプション(&O)")
pILuxToolbar -> Add(NULL, NULL, NULL)[/code]
[b]Destroyイベントで[/b]
[code]'インスタンスを破棄
pILuxToolbar -> Release()[/code][/hide]
試してみるとわかるのですが、最後に追加したボタンが何故か表示されません。
ボタンの計数処理とサイズ計算に食い違いがあるみたいなのですが、
ソースの修正は面倒なので、最後に余分なセパレータを入れて誤魔化しています。
他のインターフェイスメソッドについては、おおよそ↓のような感じだと思います。
[quote]Function GetHandle() As HWND
コントロールのウィンドウハンドルを取得
Sub Insert(index As Long, id As Long, hIcon As HICON,lpszToolTip As LPSTR)
indexの場所にボタン追加
Sub Clear()
ボタンを全削除
Sub EnableItem(id As Long, bEnabled As BOOL)
淡色表示にする/しない
Sub GetSize(ByRef size As SIZE)
コントロールのサイズを取得
Sub OnRButtonUp(flags As DWord, ByRef pos As POINTAPI)
?[/quote]