Posted: 2006年4月07日(金) 14:44
[ここをクリックすると内容が表示されます]
これは、ある人のもの使って作成してみました。コード: 全て選択
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
Dim ic As INITCOMMONCONTROLSEX
Dim tbb[12] As TBBUTTON
hEdit=GetDlgItem(hMainWnd,EditBox1)
'コモンコントロールの初期化
ic.dwSize=Len(ic)
ic.dwICC=ICC_BAR_CLASSES
InitCommonControlsEx(ic)
'ボタン情報をセット
SetTbButtonData(tbb[0],0,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON)
SetTbButtonData(tbb[1],1,IDM_OPEN,TBSTATE_ENABLED,TBSTYLE_BUTTON)
SetTbButtonData(tbb[2],2,IDM_SAVE,TBSTATE_ENABLED,TBSTYLE_BUTTON)
SetTbButtonData(tbb[3],3,IDM_FILEOVERWRITE,TBSTATE_ENABLED,TBSTYLE_BUTTON)
SetTbButtonData(tbb[4],0,0,TBSTATE_ENABLED,TBSTYLE_SEP)
SetTbButtonData(tbb[5],4,IDM_CUT,TBSTATE_ENABLED,TBSTYLE_BUTTON)
SetTbButtonData(tbb[6],5,IDM_COPY,TBSTATE_ENABLED,TBSTYLE_BUTTON)
SetTbButtonData(tbb[7],6,IDM_PASTE,TBSTATE_ENABLED,TBSTYLE_BUTTON)
SetTbButtonData(tbb[8],7,IDM_UNDO,TBSTATE_ENABLED,TBSTYLE_BUTTON)
SetTbButtonData(tbb[9],0,0,TBSTATE_ENABLED,TBSTYLE_SEP)
SetTbButtonData(tbb[10],8,IDM_SENDMAIL,TBSTATE_ENABLED,TBSTYLE_BUTTON)
SetTbButtonData(tbb[11],0,0,TBSTATE_ENABLED,TBSTYLE_SEP)
SetTbButtonData(tbb[12],9,IDM_ABOUT,TBSTATE_ENABLED,TBSTYLE_BUTTON)
'ツールバーを生成
hToolbar=CreateToolbarEx(hMainWnd, _
WS_CHILD or WS_VISIBLE or TBSTYLE_TOOLTIPS, _
ID_TOOLBAR, _
9, _ 'ビットマップの個数
GetModuleHandle(0), _
IDB_BITMAP1, _ 'ビットマップのリソースID
tbb, _
12, _ 'ボタンの個数
0,0, _ 'ボタンサイズ(0指定で自動セットに)
16,15, _ 'ビットマップサイズ
Len(tbb[0]))
'ウィンドウスタイルにTBSTYLE_FLATを追加
Dim style As Long
style=GetWindowLong(hToolbar,GWL_STYLE)
style=style or TBSTYLE_FLAT
SetWindowLong(hToolbar,GWL_STYLE,style)
'イメージリストを作成(フルカラー)
hImageList=ImageList_LoadImage(GetModuleHandle(0), _
IDB_BITMAP2, _
16, 0, RGB(192,192,192), _
IMAGE_BITMAP,LR_CREATEDIBSECTION)
'ホットイメージを設定
SendMessage(hToolbar, TB_SETHOTIMAGELIST, 0, hImageList)
'MainWndを画面の真ん中に移動
Dim MainWndRect As RECT
GetWindowRect(hMainWnd, MainWndRect)
SetWindowPos(hMainWnd, 0,_
(GetSystemMetrics(SM_CXSCREEN) - MainWndRect.right + MainWndRect.left) \ 2,_
(GetSystemMetrics(SM_CYSCREEN) - MainWndRect.bottom + MainWndRect.top) \ 2,_
0, 0, SWP_NOSIZE or SWP_NOZORDER)
End Sub
これで原因が分かればいいのですが、ツールバーの情報です(見て分かると思いますが)呼び出し側のビットマップははずしました。
DLLを同じディレクトリにコピーしました。
しかしなぜか、
と出るのです。人に頼みすぎですが、原因が私に分からないので、教えていただけませんか?自分もできる限りの努力をして探したいと思いますが。MainWnd.sbp(11) - "CreateToolbarDx" を参照できません
MainWnd.sbp(110) - "IDB_BITMAP1" 無効な識別子です
MainWnd.sbp(129) - "IDB_BITMAP2" 無効な識別子です