Re[2]: EnableScrollBar не срабатывает при флаге ESB_ENABLE_B
От: Веселопедист  
Дата: 16.11.10 09:46
Оценка:
Здравствуйте, 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()

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