Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, Веселопедист, Вы писали:
В>>подскажите плз
В>>нужно по событию (например по нажатию кнопки) сделать полосы прокрутки неактивными
В>>использую функцию EnableScrollBar — срабатывает для всех флажков, кроме ESB_ENABLE_BOTH
В>>для ESB_ENABLE_BOTH возвращает false. в чем может быть дело?
может сталкивался кто
В>>В>>CScrollBar m_vertScrollBar;
В>><...>
В>>void CChildView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
В>>{
В>> if (nChar == VK_END)
В>> {
В>> bool bRes = false;
В>> bRes = m_vertScrollBar.EnableScrollBar(ESB_ENABLE_BOTH);
В>> }
В>> CWnd::OnKeyDown(nChar, nRepCnt, nFlags);
В>>}
В>>
PD>If the arrows are already in the requested state or an error occurs, the return value is zero. To get extended error information, call GetLastError.
PD>Скорее всего именно это. Кстати, почему именно ESB_ENABLE_BOTH ? чтобы неактивным сделать, надо ESB_DISABLE_BOTH.
PD>Если же причина не в этом — зови GetLastError и результат в студию.
м... просто надо их включать/выключать
код выше набросал просто для проверки именно самой функции EnableScrollBar. передавал туда сначала ESB_DISABLE_BOTH, потом еще раз вызывал ее же и передавал ESB_ENABLE_BOTH.
и вот выключать получается на ура.и по одной стрелочке и сразу обе. а включить обратно — фиг!
GetLastError пробовал. ничего не вернул :\

так что стало совсем непонятно, куда рыть дальше.
и в итоге из положения вышел тупо через
pScrollBar->EnableWindow()
в чем проблема так и осталось мне непонятно