windows-nt/Source/XPSP1/NT/ds/nw/convert/nwconv/tab.h
2020-09-26 16:20:57 +08:00

72 lines
4.6 KiB
C

//////////////////////////////////////////////////////////////////////////////
// Book Tab Control Name
//////////////////////////////////////////////////////////////////////////////
#define BOOK_TAB_CONTROL TEXT("BOOKTAB")
//////////////////////////////////////////////////////////////////////////////
// Book Tab specific input messages
//////////////////////////////////////////////////////////////////////////////
//
// message wParam lParam return action
// ------- ------ ------ ------ ------
// BT_ADDITEM -- pItem index adds tab at next avail. spot
// BT_INSERTITEM index pItem index adds a new item at index
// BT_DELETEITEM index -- <nothing> deletes the tab at index
// BT_DELETEALLITEMS -- -- <nothing> deletes all tabs
// BT_SETITEM index pItem succ/fail replaces text on tab
// BT_GETITEM index pItem succ/fail retrieves text on tab
// BT_SETCURSEL index -- succ/fail sets the current selection
// BT_GETCURSEL -- -- index
// BT_GETITEMCOUNT -- -- item count
// BT_SETITEMDATA index data succ/fail store a DWORD with a tab
// BT_GETITEMDATA index -- data retrieve the DWORD from a tab
// BT_PUTINBACK -- -- <nothing> solves focus problem
//
//
#define BT_BASE WM_USER + 777
#define BT_ADDITEM BT_BASE + 0
#define BT_INSERTITEM BT_BASE + 1
#define BT_DELETEITEM BT_BASE + 2
#define BT_DELETEALLITEMS BT_BASE + 3
#define BT_SETITEM BT_BASE + 4
#define BT_GETITEM BT_BASE + 5
#define BT_SETCURSEL BT_BASE + 6
#define BT_GETCURSEL BT_BASE + 7
#define BT_GETITEMCOUNT BT_BASE + 8
#define BT_SETITEMDATA BT_BASE + 9
#define BT_GETITEMDATA BT_BASE + 10
#define BT_PUTINBACK BT_BASE + 11
//////////////////////////////////////////////////////////////////////////////
// Book Tab specific notification messages
//////////////////////////////////////////////////////////////////////////////
// message wParam lParam meaning
// ------- ------ ------ -------
// BTN_SELCHANGE index my hwnd the current selection has changed
// (please note that this notfification WILL NOT BE
// SENT if the selection is changed by the
// BT_SETCURSEL message).
//
#define BTN_SELCHANGE BT_BASE + 100
//////////////////////////////////////////////////////////////////////////////
// Book Tab functions for all to see
//////////////////////////////////////////////////////////////////////////////
void BookTab_Initialize(HINSTANCE hInstance);
//////////////////////////////////////////////////////////////////////////////
// Book Tab macros to make messages look like functions
//////////////////////////////////////////////////////////////////////////////
#define BookTab_AddItem(hwndCtl, text) ((UINT)(DWORD)SendMessage((hwndCtl), BT_ADDITEM, (WPARAM)(0), (LPARAM)(LPCTSTR)(text) ))
#define BookTab_InsertItem(hwndCtl, index, text) ((UINT)(DWORD)SendMessage((hwndCtl), BT_INSERTITEM, (WPARAM)(UINT)(index), (LPARAM)(LPCTSTR)(text) ))
#define BookTab_DeleteItem(hwndCtl, index) ((void)(DWORD)SendMessage((hwndCtl), BT_DELETEITEM, (WPARAM)(UINT)(index), (LPARAM)(0) ))
#define BookTab_DeleteAllItems(hwndCtl) ((void)(DWORD)SendMessage((hwndCtl), BT_DELETEALLITEMS, (WPARAM)(0), (LPARAM)(0) ))
#define BookTab_SetItem(hwndCtl, index, text) ((BOOL)(DWORD)SendMessage((hwndCtl), BT_SETITEM, (WPARAM)(UINT)(index), (LPARAM)(LPCTSTR)(text) ))
#define BookTab_GetItem(hwndCtl, index, text) ((BOOL)(DWORD)SendMessage((hwndCtl), BT_GETITEM, (WPARAM)(UINT)(index), (LPARAM)(LPCTSTR)(text) ))
#define BookTab_SetCurSel(hwndCtl, index) ((BOOL)(DWORD)SendMessage((hwndCtl), BT_SETCURSEL, (WPARAM)(UINT)(index), (LPARAM)(0) ))
#define BookTab_GetCurSel(hwndCtl) ((UINT)(DWORD)SendMessage((hwndCtl), BT_GETCURSEL, (WPARAM)(0), (LPARAM)(0) ))
#define BookTab_GetItemCount(hwndCtl) ((UINT)(DWORD)SendMessage((hwndCtl), BT_GETITEMCOUNT, (WPARAM)(0), (LPARAM)(0) ))
#define BookTab_SetItemData(hwndCtl, index, data) ((BOOL)(DWORD)SendMessage((hwndCtl), BT_SETITEMDATA, (WPARAM)(UINT)(index), (LPARAM)(DWORD)(data) ))
#define BookTab_GetItemData(hwndCtl, index) ((DWORD)(DWORD)SendMessage((hwndCtl), BT_GETITEMDATA, (WPARAM)(UINT)(index), (LPARAM)(0) ))
#define BookTab_PutInBack(hwndCtl) ((DWORD)(DWORD)PostMessage((hwndCtl), BT_PUTINBACK, (WPARAM)(0), (LPARAM)(0) ))