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

Ваш аккаунт

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

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

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

Tab Control

12K
25 декабря 2007 года
GlAl
28 / / 13.10.2006
Доброго Вам времени суток!
У меня возникла следующая проблема, никак не появляется поле Тab Control, в 2000 винде все работало, поставил ХР, и все, перестало.
Вот код:
Код:
#include <windows.h>
#include "resource.h"
#include <commctrl.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

class mClass{
public:
    mClass();
    HWND hMainWnd;
    HINSTANCE hInstance;
    HWND hTab;
    TCITEM tie;
    int TabIndex;
};

mClass::mClass()
{
    tie.pszText = "Untitled";
    tie.mask = TCIF_TEXT;  
    TabIndex = 0;
}

static mClass app;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    app.hInstance = hInstance;

    char szClassName[] = "My Class";

    MSG msg;
    WNDCLASSEX wc;
   
    HPEN hPen = CreatePen(PS_SOLID, 5, RGB(212,208,200));
   
    wc.cbSize           = sizeof(wc);
    wc.style            = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc      = WndProc;
    wc.cbClsExtra       = 0;
    wc.cbWndExtra       = 0;
    wc.hInstance        = app.hInstance;
    wc.hIcon            = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor          = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground    = (HBRUSH)hPen;
    wc.lpszMenuName     = MAKEINTRESOURCE(IDR_MAIN);
    wc.lpszClassName    = szClassName;
    wc.hIconSm          = LoadIcon(NULL, IDI_APPLICATION);
       
    if(!RegisterClassEx(&wc)){
        MessageBox(NULL, "Can't register class", "Error", MB_OK);
        return 0;
    }

    app.hMainWnd = CreateWindowEx(WS_EX_WINDOWEDGE, szClassName, "Small Window", WS_OVERLAPPEDWINDOW | WS_MAXIMIZE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, (HWND)NULL, NULL, (HINSTANCE)hInstance, NULL);

    if(!app.hMainWnd){
        MessageBox(NULL, "Can't create window", "Error", MB_OK);
        return 0;
    }

    ShowWindow(app.hMainWnd, nCmdShow);

    /*INITCOMMONCONTROLSEX icc;
    icc.dwSize = sizeof(INITCOMMONCONTROLSEX);
    icc.dwICC = ICC_WIN95_CLASSES;
    InitCommonControlsEx(&icc);
*/
    while(GetMessage(&msg, NULL, 0, 0)){
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg){
        case WM_CREATE:        
            app.hTab = CreateWindow(WC_TABCONTROL,"Hello", WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE, 0, 0, 400, 300, hWnd, 0, app.hInstance, NULL);
            TabCtrl_InsertItem(app.hTab,app.TabIndex,&app.tie);

            return 0;

        case WM_CLOSE:
            DestroyWindow(hWnd);
            break;

        case WM_DESTROY:
            PostQuitMessage(0);
            break;

        default:
            return DefWindowProc(hWnd, uMsg, wParam, lParam);
            break;
    }
    return 0;
}


P.S Я сам грешу не инициализацию библиотеки, но когда раскомментирую следующие строки:
 
Код:
/*INITCOMMONCONTROLSEX icc;
    icc.dwSize = sizeof(INITCOMMONCONTROLSEX);
    icc.dwICC = ICC_WIN95_CLASSES;
    InitCommonControlsEx(&icc);*/

То у меня появляется следующая ошибка:
 
Код:
SmallWindow error LNK2019: unresolved external symbol __imp__InitCommonControlsEx@4 referenced in function _WinMain@16

и еще одна:
 
Код:
SmallWindow fatal error LNK1120: 1 unresolved externals


Ума не приложу что поделать
5.3K
25 декабря 2007 года
Somebody
185 / / 24.12.2006
Unresolved external - я бы подумал, что в commctrl.h нет такой функции. Только почему тогда раньше работало? Попробуй вместо раскомментированного InitCommonControls().
12K
26 декабря 2007 года
GlAl
28 / / 13.10.2006
Все, вопрос отпал, сделал путем насильного подключения библиотеки следующей строкой:
 
Код:
#pragma comment ( lib, "comctl32.lib" );
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог