Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Создание слайдера программно


Автор: dreamer21 30.1.2010, 17:13
Код

UINT iMin=0;     // minimum value in trackbar range 
      UINT iMax=100;     // maximum value in trackbar range 
      UINT iSelMin=1;  // minimum value in trackbar selection 
      UINT iSelMax=2;  // maximum value in trackbar selection 
      hwnd = CreateWindowEx( 
        0,                             // no extended styles 
        TRACKBAR_CLASS,                // class name 
        L"Trackbar Control",            // title (caption) 
        WS_CHILD | WS_VISIBLE | 
        TBS_AUTOTICKS | TBS_ENABLESELRANGE,  // style 
        10, 10,                        // position 
        200, 30,                       // size 
        hParent,                       // parent window 
        (HMENU)id,             // control identifier 
        g_hinst,                       // instance 
        //NULL,
        NULL                           // no WM_CREATE parameter 
        ); 

    SendMessage(hwnd, TBM_SETRANGE, 
        (WPARAM) TRUE,                   // redraw flag 
        (LPARAM) MAKELONG(iMin, iMax));  // min. & max. positions 
    SendMessage(hwnd, TBM_SETPAGESIZE, 
        0, (LPARAM) 4   // new page size 
    );                  

    SendMessage(hwnd, TBM_SETSEL, 
        (WPARAM) FALSE,                  // redraw flag 
        (LPARAM) MAKELONG(iSelMin, iSelMax)
    ); 
    SendMessage(hwnd, TBM_SETPOS, 
        (WPARAM) TRUE,                   // redraw flag 
        (LPARAM) iSelMin
    ); 

Это собственно тело функции, создающей слайдер. При компиляции ошибок не выдает. При выполнении тоже. Слайдер просто не виден на эране. Что делать? Может какие-нибудь параметры не так указал? P.S. InitCommonControls() вызывал. Библиотека comctl32.lib подключена.

Автор: dreamer21 30.1.2010, 19:54
Проблема была совсем в другом. Код правильный. Просто эта функция вызывалась в оконной процедуре до переключателя сообщений. А как поменять цвет окна слайдера???

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)