Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2019, 19:57   #1
Krosforg
Новичок
Джуниор
 
Регистрация: 29.01.2019
Сообщений: 1
По умолчанию Фон у вкладок tabcontrol'a

Возможно тут мне смогут подсказать. Хочу понять как работают вкладки. Добавляю tabcontol таким образом
Код:
#include <windows.h>
#include <commctrl.h>
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
TCHAR WinName[] = "MainFrame";
HWND htabcontrol;
HWND button;
 
int APIENTRY WinMain(HINSTANCE This, HINSTANCE Prev, LPTSTR cmd, int mode)
{
    HWND hWnd; // Дескриптор главного окна программы
    MSG msg; // Структура для хранения сообщения
    WNDCLASS wc; // Класс окна
    
    wc.hInstance = This;
    wc.lpszClassName = WinName; // Имя класса окна
    wc.lpfnWndProc = WndProc; // Функция окна
    wc.style = CS_HREDRAW | CS_VREDRAW; // Стиль окна
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); // Стандартная иконка
    wc.hCursor = LoadCursor(NULL,IDC_ARROW); // Стандартный курсор
    wc.lpszMenuName = NULL; // Нет меню
    wc.cbClsExtra = 0; // Нет дополнительных данных класса
    wc.cbWndExtra = 0; // Нет дополнительных данных окна
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); // Заполнение окна белым цветом
    if(!RegisterClass(&wc)) return 0; // Регистрация класса окна
        hWnd = CreateWindow(WinName, "Каркас Windows-приложения", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
                            CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, NULL, This, NULL);
    ShowWindow(hWnd, mode);
 
    htabcontrol = CreateWindow(WC_TABCONTROL, NULL, WS_CHILD | WS_VISIBLE, 222, 222,
                            280, 282, hWnd, NULL, This, NULL);
    button = CreateWindow("button", "Button 1", WS_CHILD | WS_VISIBLE, 300, 300,
                            70, 20, hWnd, NULL, This, NULL);
    TC_ITEM tabitem;
    tabitem.mask = TCIF_TEXT;
    tabitem.pszText = "Tab 1";
    SendMessage(htabcontrol, TCM_INSERTITEM, 0, LPARAM(&tabitem));
    tabitem.pszText = "Tab 2";
    SendMessage(htabcontrol, TCM_INSERTITEM, 1, LPARAM(&tabitem));
    
    // Цикл обработки сообщений
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);// Функция трансляции кодов нажатой клавиши
        DispatchMessage(&msg); // Посылает сообщение функции WndProc()
    }
    return 0;
}
 
// Оконная функция вызывается операционной системой
// и получает сообщения из очереди для данного приложения
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{ // Обработчик сообщений
    switch(message)
    {
    case WM_DESTROY : PostQuitMessage(0);
        break;
 
    default : return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
Однако вид кнопок и эдитбоксов выглядит устаревшим. Нашел, что дизайн можно исправить с помощью манифеста. Только теперь фон вкладок становится белым, что мне не очень нравится. Для изменения фона везде предлагают использовать функцию
Код:
EnableThemeDialogTexture(hwnd, ETDT_ENABLETAB);
но в моем случае ничего не меняется (может неверно использую). Как изменить фон вкладок, избегая ручную перерисовку самого контрола?

Последний раз редактировалось Krosforg; 29.01.2019 в 20:03.
Krosforg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление вкладок в TabControl. C# WPF NewLamer&Programer WPF, UWP, WinRT, XAML 1 19.03.2016 17:05
Дублекат вкладок в TabControl после обновления ListView Shouldercannon Общие вопросы Delphi 3 10.10.2014 21:40
Закрытие вкладок TabControl Shouldercannon Общие вопросы Delphi 2 12.12.2012 21:09
WPF:ориентация вкладок в компоненте TabControl Mixim WPF, UWP, WinRT, XAML 1 22.05.2012 11:07
Переключение вкладок на TabControl программно Casper-SC Общие вопросы .NET 4 20.10.2011 14:00