| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > ScrollBar убрать в SDI приложении |
| Автор: kurlyak 5.3.2013, 10:56 |
| Вобщим пишу программу MFC, SDI на базе CFormView. Мне нужно что бы в окне после запуска не отображались скроллбары, и полоски после них. Как реализовать. Пробывал ShowScrollBar(SB_BOTH, FALSE); и пробовал ModifyStyle(WS_HSCROLL|WS_VSCROLL, 0, 0); Только вот что- то у меня это не работает. Куда их вставлять, в какую функцию какого класса CMainFrame или CMyProgView? |
| Автор: Earnest 5.3.2013, 13:56 |
| Убирать надо у того, у кого стиль WS_HSCROLL. Это можно посмотреть Спаем. Кроме того, при удалении\добавлении таких стилей нужно обязательно передавать флаг swp_framechanged последним параметром. А еще возникает вопрос - зачем убирать, когда можно создавать без оных сразу. Просто стиль соответствующий поставь, и у фрейма и у вида. |
| Автор: kurlyak 5.3.2013, 16:52 |
| Спасибо за ответ, я ограничился таким кодом: void CMyView::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp) { // TODO: Add your message handler code here and/or call default ModifyStyle(ES_AUTOHSCROLL|WS_HSCROLL|WS_VSCROLL,0,0); CFormView::OnNcCalcSize(bCalcValidRects, lpncsp); } |
| Автор: Earnest 5.3.2013, 16:58 |
| Лучше все-таки ModifyStyle (... SWP_FRAMECHANGED) и не вызывать OnNcCalcSize руками, это некошерно |
| Автор: YDean 8.3.2013, 10:32 | ||
проще всего
|