Re: VC++ 6.0 Доступ к scrollbars в диалоговом окне
От: nii_im_b Мухосранск  
Дата: 18.11.04 11:45
Оценка:
Здравствуйте, NickName01, Вы писали:

NN>На первый взгляд простой вопрос, но не получается решить.

NN>В среде VisualStudio 6.0 создаю простейшее диалоговое окно в редакторе ресурсов. Задаю стили Horizontal Scroll и Vertical Scroll. Функция GetScrollBarCtrl(SB_VERT) для класса диалогового окна возвращает NULL. Функция API ::GetScrollInfo(...) возвращает ошибку. Как получить доступ к этим полосам прокрутки?

NN>Формат вызова:


NN>
NN>BOOL CDialogScrollBarsDlg::OnInitDialog()
NN>{
NN>    CDialog::OnInitDialog();

NN>    // TODO: Add extra initialization here

NN>    CWnd const *pVScrollBar = GetScrollBarCtrl(SB_VERT);
NN>    ASSERT(pVScrollBar != NULL);        // assert!
NN>    SCROLLINFO ScrollInfo;
NN>    ::ZeroMemory(&ScrollInfo, sizeof(ScrollInfo));
NN>    ScrollInfo.cbSize = sizeof(ScrollInfo);
NN>    ScrollInfo.fMask = SIF_ALL;
NN>    BOOL bResult = ::GetScrollInfo(GetSafeHwnd(), SB_VERT, &ScrollInfo);
NN>    if(!bResult) 
NN>    {
NN>        TRACE("%x\n", GetLastError());    // return 0
NN>    }
    
NN>    return TRUE;  // return TRUE  unless you set the focus to a control
NN>}
NN>



This method does not operate on scroll bars created when the WS_HSCROLL or WS_VSCROLL bits are set during the creation of a window. The CWnd implementation of this function simply returns NULL. Derived classes, such as CView, implement the described functionality.

матчасть прежде всего!!! кстати CWnd const храбро заменяем на CScrollBar
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.