HWND CreateToolbarEx( HWND hwnd , DWORD ws , UINT wID , int nBitmaps, HINSTANCE hBMInst , UINT wBMID , LPCTBBUTTON lpButtons , int iNumButtons , int dxButton , int dyButton , int dxBitmap , int dyBitmap , UINT uStructSize );hwnd には、ツールバーの親ウィンドウを指定します
定数 | 解説 |
---|---|
CCS_ADJUSTABLE | 組み込みカスタマイズ機能を有効にする ボタンの位置をドラッグで移動させたり、ボタンの削除が行える |
TBSTYLE_ALTDRAG | ALt キーを押しながら、ツールバーボタンをドラッグし ボタンの位置の移動を有効にすることを示す CCS_ADJUSTABLE スタイルを設定しなければならない |
TBSTYLE_TOOLTIPS | ツールバー内のボタンに対する説明的なテキストの表示に用いる ツールバーヒントコントロールの作成を有効にする |
TBSTYLE_WRAPABLE | 複数行のボタンを持つことができるツールバーを作成する |
typedef struct _TBBUTTON { int iBitmap; int idCommand; BYTE fsState; BYTE fsStyle; DWORD dwData; int iString; } TBBUTTON, NEAR* PTBBUTTON, FAR* LPTBBUTTON;iBitmap には、ボタンイメージの 0 から数えるインデックスを指定します
定数 | 解説 |
---|---|
TBSTATE_CHECKED | TBSTYLE_CHECK ボタンの場合 押された状態になっている |
TBSTATE_ENABLED | ボタンは使用可能である |
TBSTATE_HIDDEN | ボタンは非表示である |
TBSTATE_INDETERMINATE | ボタンは淡色表示になっている |
TBSTATE_PRESSED | ボタンは押されている |
TBSTATE_WRAP | このボタンの後で改行が発生する TBSTATE_ENABLED も指定されていなければならない |
定数 | 解説 |
---|---|
TBSTYLE_BUTTON | 標準プッシュボタン |
TBSTYLE_CHECK | チェックボックス型のボタン ボタンの押すたびに、押された状態と押されていない状態が入れ替わる |
TBSTYLE_CHECKGROUP | ラジオボタン型のボタン グループ内の他のボタンが押されるまで、押した状態を保つ |
TBSTYLE_GROUP | グループ内の別のボタンが押されるまで 押された状態を保つ標準ボタン |
TBSTYLE_SEP | ボタングループの間に隙間をあけ、区切り線の役割をする |
/*resource.h*/ #define IDW_TOOL 100 #define IDB_TOOL 101
/*リソーススクリプト*/ #include "resource.h" IDB_TOOL BITMAP DISCARDABLE "test.bmp"
#include <windows.h> #include <commctrl.h> #include "resource.h" #define TITLE TEXT("Kitty on your lap") TBBUTTON tbButton[] = { { 0 , 1 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0} , { 1 , 2 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0} }; LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) { static HWND hToolbar; switch (msg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_CREATE: InitCommonControls(); hToolbar = CreateToolbarEx( hWnd , WS_CHILD | WS_VISIBLE , IDW_TOOL , 2 , ((LPCREATESTRUCT)(lp))->hInstance , IDB_TOOL , tbButton , 2 , 0 , 0 , 20 , 17 , sizeof (TBBUTTON) ); return 0; case WM_SIZE: SendMessage(hToolbar , WM_SIZE , wp , lp); return 0; } return DefWindowProc(hWnd , msg , wp , lp); } int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { HWND hWnd; MSG msg; WNDCLASS winc; winc.style = CS_HREDRAW | CS_VREDRAW; winc.lpfnWndProc = WndProc; winc.cbClsExtra = winc.cbWndExtra = 0; winc.hInstance = hInstance; winc.hIcon = LoadIcon(NULL , IDI_APPLICATION); winc.hCursor = LoadCursor(NULL , IDC_ARROW); winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); winc.lpszMenuName = NULL; winc.lpszClassName = TEXT("KITTY"); if (!RegisterClass(&winc)) return -1; hWnd = CreateWindow( TEXT("KITTY") , TITLE , WS_OVERLAPPEDWINDOW | WS_VISIBLE , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , NULL , NULL , hInstance , NULL ); if (hWnd == NULL) return -1; while(GetMessage(&msg , NULL , 0 , 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
値 | リソース |
---|---|
IDB_STD_LARGE_COLOR | 大きいカラー標準ビットマップ |
IDB_STD_SMALL_COLOR | 小さいカラー標準ビットマップ |
IDB_VIEW_LARGE_COLOR | 大きいカラービュービットマップ |
IDB_VIEW_SMALL_COLOR | 小さいカラービュービットマップ |
定数 | 解説 |
---|---|
STD_COPY | コピー |
STD_CUT | カット |
STD_DELETE | 削除 |
STD_FILENEW | 新規作成 |
STD_FILEOPEN | ファイルを開く |
STD_FILESAVE | 保存 |
STD_FIND | 検索 |
STD_HELP | ヘルプ |
STD_PASTE | 貼りつけ |
STD_PRINT | 印刷 |
STD_PRINTPRE | 印刷プレビュー |
STD_PROPERTIES | プロパティ |
STD_REDOW | やり直し |
STD_REPLACE | 置換え |
STD_UNDO | 元に戻す |
VIEW_DETAILS | 詳細 |
VIEW_LARGEICONS | 大きいアイコンとして表示 |
VIEW_LIST | 一覧として表示 |
VIEW_SMALLICONS | 小さいアイコンとして表示 |
VIEW_SORTDATE | 一覧を日付順に表示 |
VIEW_SORTNAME | 一覧を名前順に表示 |
VIEW_SORTSIZE | 一覧をサイズ順に表示 |
VIEW_SORTTYPE | 一覧をタイプ順に表示 |
#include <windows.h> #include <commctrl.h> #define TITLE TEXT("Kitty on your lap") TBBUTTON tbButton[] = { { STD_FILENEW , 1 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { STD_FILEOPEN , 2 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { STD_FILESAVE , 3 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { 0 , 0 , TBSTATE_ENABLED , TBSTYLE_SEP , 0 , 0 , 0 } , { STD_COPY , 4 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { STD_CUT , 5 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { STD_DELETE , 6 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } }; LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) { static HWND hToolbar; switch (msg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_CREATE: InitCommonControls(); hToolbar = CreateToolbarEx( hWnd , WS_CHILD | WS_VISIBLE , 0 , 6 , (HINSTANCE)HINST_COMMCTRL , IDB_STD_SMALL_COLOR , tbButton , 7 , 0 , 0 , 0 , 0 , sizeof (TBBUTTON) ); return 0; case WM_SIZE: SendMessage(hToolbar , WM_SIZE , wp , lp); return 0; } return DefWindowProc(hWnd , msg , wp , lp); } int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { HWND hWnd; MSG msg; WNDCLASS winc; winc.style = CS_HREDRAW | CS_VREDRAW; winc.lpfnWndProc = WndProc; winc.cbClsExtra = winc.cbWndExtra = 0; winc.hInstance = hInstance; winc.hIcon = LoadIcon(NULL , IDI_APPLICATION); winc.hCursor = LoadCursor(NULL , IDC_ARROW); winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); winc.lpszMenuName = NULL; winc.lpszClassName = TEXT("KITTY"); if (!RegisterClass(&winc)) return -1; hWnd = CreateWindow( TEXT("KITTY") , TITLE , WS_OVERLAPPEDWINDOW | WS_VISIBLE , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , NULL , NULL , hInstance , NULL ); if (hWnd == NULL) return -1; while(GetMessage(&msg , NULL , 0 , 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
typedef struct { HINSTANCE hInst; UINT nID; } TBADDBITMAP, *LPTBADDBITMAP;hInst は、ビットマップリソースを格納するモジュールのインスタンスハンドルを
#include <windows.h> #include <commctrl.h> #define TITLE TEXT("Kitty on your lap") TBBUTTON tbButton[] = { { STD_FILENEW , 1 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { STD_FILEOPEN , 2 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { STD_FILESAVE , 3 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { 0 , 0 , TBSTATE_ENABLED , TBSTYLE_SEP , 0 , 0 , 0 } , { STD_COPY , 4 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { STD_CUT , 5 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { STD_DELETE , 6 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { 0 , 0 , TBSTATE_ENABLED , TBSTYLE_SEP , 0 , 0 , 0 } , { VIEW_NEWFOLDER , 7 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , { VIEW_PARENTFOLDER , 8 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 } , }; LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) { static HWND hToolbar; TBADDBITMAP tb; int iIndex; switch (msg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_CREATE: InitCommonControls(); hToolbar = CreateToolbarEx( hWnd , WS_CHILD | WS_VISIBLE , 0 , 6 , (HINSTANCE)HINST_COMMCTRL , IDB_STD_SMALL_COLOR , tbButton , 7 , 0 , 0 , 0 , 0 , sizeof (TBBUTTON) ); tb.hInst = HINST_COMMCTRL; tb.nID = IDB_VIEW_SMALL_COLOR; iIndex = SendMessage(hToolbar , TB_ADDBITMAP , 2 , (LPARAM)&tb); tbButton[8].iBitmap += iIndex; tbButton[9].iBitmap += iIndex; SendMessage(hToolbar , TB_ADDBUTTONS , 3 , (LPARAM) &tbButton[7]); return 0; case WM_SIZE: SendMessage(hToolbar , WM_SIZE , wp , lp); return 0; } return DefWindowProc(hWnd , msg , wp , lp); } int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { HWND hWnd; MSG msg; WNDCLASS winc; winc.style = CS_HREDRAW | CS_VREDRAW; winc.lpfnWndProc = WndProc; winc.cbClsExtra = winc.cbWndExtra = 0; winc.hInstance = hInstance; winc.hIcon = LoadIcon(NULL , IDI_APPLICATION); winc.hCursor = LoadCursor(NULL , IDC_ARROW); winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); winc.lpszMenuName = NULL; winc.lpszClassName = TEXT("KITTY"); if (!RegisterClass(&winc)) return -1; hWnd = CreateWindow( TEXT("KITTY") , TITLE , WS_OVERLAPPEDWINDOW | WS_VISIBLE , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , NULL , NULL , hInstance , NULL ); if (hWnd == NULL) return -1; while(GetMessage(&msg , NULL , 0 , 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
HWND CreateToolbarEx( HWND hwnd , DWORD ws , UINT wID , int nBitmaps, HINSTANCE hBMInst , UINT wBMID , LPCTBBUTTON lpButtons , int iNumButtons , int dxButton , int dyButton , int dxBitmap , int dyBitmap , UINT uStructSize );ツールバーを指定ウィンドウに表示します
定数 | 解説 |
---|---|
CCS_ADJUSTABLE | 組み込みカスタマイズ機能を有効にする ボタンの位置をドラッグで移動させたり、ボタンの削除が行える |
TBSTYLE_ALTDRAG | ALt キーを押しながら、ツールバーボタンをドラッグし ボタンの位置の移動を有効にすることを示す CCS_ADJUSTABLE スタイルを設定しなければならない |
TBSTYLE_TOOLTIPS | ツールバー内のボタンに対する説明的なテキストの表示に用いる ツールバーヒントコントロールの作成を有効にする |
TBSTYLE_WRAPABLE | 複数行のボタンを持つことができるツールバーを作成する |