定数 | 解説 |
---|---|
TCS_BUTTONS | タブをプッシュボタンとして表示する |
TCS_FIXEDWIDTH | 全てのタブを同じサイズで表示する |
TCS_FOCUSNEVER | タブは入力フォーカスを受けない |
TCS_FOCUSONBUTTONDOWN | タブは、選択されと入力フォーカスを受ける |
TCS_FORCEICONLEFT | タブアイコンを左詰めにし、テキストをセンタリングする |
TCS_FORCELABELLEFT | アイコンとテキストを左詰にする |
TCS_MULTILINE | 幅に対し、一行で全てのタブを表示できない場合 タブを改行し、複数行で表示する |
TCS_OWNERDRAWFIXED | オーナー描画タブである |
TCS_RIGHTJUSTIFY | 全てのタブの合計の幅が、タブコントロール全体のサイズになるまで拡大される |
TCS_SINGLELINE | タブが一行で表示される デフォルトではこのスタイルが用いられる |
TCS_TABS | タブは、デフォルトスタイルで表示される |
TCS_TOOLTIPS | ツールヒントコントロールが作成され TTN_NEEDTEXT を発行する |
typedef struct tagTCITEM { UINT mask; #if (_WIN32_IE >= 0x0300) DWORD dwState; DWORD dwStateMask; #else UINT lpReserved1; UINT lpReserved2; #endif LPTSTR pszText; int cchTextMax; int iImage; LPARAM lParam; } TCITEM, FAR *LPTCITEM;mask メンバには、取得、または設定するメンバを表すフラグを指定します
定数 | 解説 |
---|---|
TCIF_ALL | 全てのメンバが有効 |
TCIF_IMAGE | image メンバが有効 |
TCIF_PARAM | iParam メンバが有効 |
TCIF_RTLREADING | タブのテキストを右から左へ表示する ヘブライ語、またはアラビア語で有効 |
TCIF_TEXT | pszText |
#include <windows.h> #include <commctrl.h> #define TITLE TEXT("Kitty on your lap") LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) { static HWND hTab; static TCITEM tc_item; switch (msg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_CREATE: InitCommonControls(); hTab = CreateWindowEx( 0 , WC_TABCONTROL , NULL , WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE , 0 , 0 , 10 , 10 , hWnd , (HMENU)0x10 , ((LPCREATESTRUCT)(lp))->hInstance , NULL ); tc_item.mask = TCIF_TEXT; tc_item.pszText = TITLE; TabCtrl_InsertItem(hTab , 0 , &tc_item); tc_item.pszText = TEXT("Tokyo mew mew"); TabCtrl_InsertItem(hTab , 1 , &tc_item); return 0; case WM_SIZE: MoveWindow(hTab , 0 , 0 , LOWORD(lp) , 30 , TRUE); 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 tagNMHDR { HWND hwndFrom; UINT idFrom; UINT code; } NMHDR;hwndFrom には、メッセージを送信するコントロールのハンドルを、
#include <windows.h> #include <commctrl.h> #define TITLE TEXT("Kitty on your lap") #define TARUTO TEXT("Magical nyan nyan TARUTO") LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) { HDC hdc; PAINTSTRUCT ps; TCITEM tc_item; static PTSTR pstr; static HWND hTab; switch (msg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_CREATE: InitCommonControls(); hTab = CreateWindowEx( 0 , WC_TABCONTROL , NULL , WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE , 0 , 0 , 10 , 10 , hWnd , (HMENU)0x10 , ((LPCREATESTRUCT)lp)->hInstance , NULL ); tc_item.mask = TCIF_TEXT; tc_item.pszText = TITLE; TabCtrl_InsertItem(hTab , 0 , &tc_item); tc_item.pszText = TARUTO; TabCtrl_InsertItem(hTab , 1 , &tc_item); return 0; case WM_SIZE: MoveWindow(hTab , 0 , 0 , LOWORD(lp) , 30 , TRUE); return 0; case WM_PAINT: hdc = BeginPaint(hWnd , &ps); TextOut(hdc , 0 , 30 , pstr , lstrlen(pstr)); EndPaint(hWnd , &ps); return 0; case WM_NOTIFY: switch (((NMHDR *)lp)->code) { case TCN_SELCHANGE: if (TabCtrl_GetCurSel(hTab) == 0) pstr = TITLE; else pstr = TARUTO; break; } InvalidateRect(hWnd , NULL , TRUE); 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; }