|
|
// *********************************************************
// ツールバーの実装
// 戻り値 : 無し
// *********************************************************
void LboxToolbar::Create( HWND hOwner, int nIndent )
{
this->hWnd = CreateWindowEx(
0,
TOOLBARCLASSNAME,
NULL,
WS_CHILD | WS_VISIBLE,
0, 0, 0, 0,
hOwner,
(HMENU)LBOX_TOOLBAR_ID,
LboxGetInstance( hOwner ),
NULL
);
if ( this->hWnd != NULL ) {
// TBBUTTON 構造体サイズの通知
SendMessage(
this->hWnd,
TB_BUTTONSTRUCTSIZE,
(WPARAM) sizeof(TBBUTTON),
0
);
// 最初のボタンの左端の位置
SendMessage(
this->hWnd,
TB_SETINDENT,
(WPARAM) nIndent,
0
);
}
}
| |
|
|
|
|
// *********************************************************
// スタンダードボタンの追加 ( small size )
// nType : 0 HIST, 1 STD, 2 VIEW
// nIndex : Standard Button Image Index
// nCommand : WM_COMMAND 経由で通知される ID
// 戻り値 : 無し
// *********************************************************
void LboxToolbar::AddStandardButton( int nType, DWORD nIndex, int nCommand )
{
if ( this->hWnd == NULL ) {
return;
}
if ( !(LboxToolbar::bStandard) ) {
LboxToolbar::bStandard = true;
LboxToolbar::offsetHist = (int)SendMessage(
this->hWnd,
TB_LOADIMAGES,
IDB_HIST_SMALL_COLOR,
(LPARAM)HINST_COMMCTRL
);
LboxToolbar::offsetStd = (int)SendMessage(
this->hWnd,
TB_LOADIMAGES,
IDB_STD_SMALL_COLOR,
(LPARAM)HINST_COMMCTRL
);
LboxToolbar::offsetView = (int)SendMessage(
this->hWnd,
TB_LOADIMAGES,
IDB_VIEW_SMALL_COLOR,
(LPARAM)HINST_COMMCTRL
);
}
TBBUTTON tbb;
switch( nType ) {
case 0:
nIndex += LboxToolbar::offsetHist;
break;
case 1:
nIndex += LboxToolbar::offsetStd;
break;
case 2:
nIndex += LboxToolbar::offsetView;
break;
}
tbb.iBitmap = nIndex;
tbb.idCommand = nCommand;
tbb.fsState = TBSTATE_ENABLED;
tbb.fsStyle = TBSTYLE_BUTTON;
tbb.dwData = 0;
tbb.iString = 0;
SendMessage(
this->hWnd,
TB_ADDBUTTONS,
(WPARAM)1,
(LPARAM) (LPTBBUTTON) &tbb
);
}
| |
|
|
|