Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

TabControl

4.3K
08 февраля 2007 года
valeriy15
84 / / 03.04.2006
Мужики, как плохо вы обо мне не думали, но никак не могу въехать, как пользоваться элементом TabControl! Может скажите, как, например на него поместить кнопки и т.п.
5.9K
08 февраля 2007 года
Zushenskiy
161 / / 29.06.2006
Код:
#define ID_TABCTL 13
/*
some code
*/
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;
    static HWND hTab;
    const int ciCount = 10;
    static HWND hButton[ciCount];
    static int iIndex;
    switch (message)
    {
    case WM_CREATE:
        {
            InitCommonControls();
            hTab = CreateWindowEx(WS_EX_CLIENTEDGE, WC_TABCONTROL, "", WS_CHILD | WS_VISIBLE, 0, 0, 400, 300, hWnd, (HMENU)ID_TABCTL, hInst, NULL);
            TCITEM item = {0};
            for (int i = 0; i < ciCount; i++)
            {
                char szBuffer[25] = "";
                sprintf(szBuffer, "%s %d", "tab №", i + 1);
                item.mask = TCIF_TEXT;
                item.cchTextMax = (int)strlen(szBuffer);
                item.pszText = szBuffer;
                hButton = CreateWindow("button", szBuffer, WS_CHILD, 50, 50 + i * 20, 100, 30, hWnd, (HMENU)(ID_TABCTL + i + 1), hInst, NULL);//создаем кнопки
                TabCtrl_InsertItem(hTab, i, &item);//добовляем табы
            }
            ShowWindow(hButton[iIndex], SW_SHOW);//показываем первую кнопку
        }
        break;
    case WM_NOTIFY:
        {
            if (wParam == ID_TABCTL)//если прислал таб
            {
                NMHDR* pmhdr = (LPNMHDR) lParam;
                if (pmhdr -> code == TCN_SELCHANGE)
                {
                    ShowWindow(hButton[iIndex], SW_HIDE);прячем старую кнопку
                    iIndex = TabCtrl_GetCurSel(hTab);//получаем какой таб выбран
                    ShowWindow(hButton[iIndex], SW_SHOW);//показуем соответствующюю кнопку
                }
            }
        }
        break;
    case WM_PAINT:
        {
            hdc = BeginPaint(hWnd, &ps);
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

тоесть за отрисовку содержимого конкретного таба ты должен отвечать сам. почитать msdn полезная весчь, дополнительные фитчи узнаешь про таб
4.3K
09 февраля 2007 года
valeriy15
84 / / 03.04.2006
Благодарю!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог