Здравствуйте, 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