Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Scroll в CDockablePane  (Прочитано 6990 раз)
0 Пользователей и 1 Гость смотрят эту тему.
rsa_m
Гость
« : 02-12-2009 13:00 » 

При запуске проекта в VS 2008 в CDockablePane вместо скролбаров появляются серые полоски.
Затем если кликнуть мышем на полосе, то появляется сам скролбар.

В чем проблема ?

CDockablePane  создаю так:
Код:
BOOL CMainFrame::CreateDockingWindows()
{
BOOL bNameValid;
// Создать окно свойств
CString strPropertiesWnd;
bNameValid = strPropertiesWnd.LoadString(IDS_PROPERTIES_WND);
ASSERT(bNameValid);
if (!m_wndProperties.Create(strPropertiesWnd, this, CRect(0, 0, 200, 200), TRUE, ID_VIEW_PROPERTIESWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI | WS_HSCROLL | WS_VSCROLL))
{
TRACE0("Не удалось создать окно \"Свойства\"\n");
return FALSE; // не удалось создать
}
SetDockingWindowIcons(theApp.m_bHiColorIcons);
return TRUE;
}

Почему скролинги сразу не отображаются нормально ?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 03-12-2009 04:33 » 

При запуске проекта в VS 2008 в CDockablePane вместо скролбаров появляются серые полоски.
Затем если кликнуть мышем на полосе, то появляется сам скролбар.

ну и построено предложение ))) Где не показывается - в среде разработки VS2008 или в твоей программе?

Если последнее - глюк проявляется только при старте программы, а позже всё нормально видно ? Может, просто достаточно после создания и показа контрола обновить окно (попробуй для начала UpdateWindow() для главного окна)
Записан

rsa_m
Гость
« Ответ #2 : 03-12-2009 06:05 » 

Скролы не показываются в моей программе.
Они начинают показываться только если по ним мышкой кликнуть. Но если окно сделать не активным (перейти на другое окно), то снова серые полоски получаем.

UpdateWindow() не помогает.
UpdateData тоже не помогает

Я свой тестовый проект прикрепил.

Кстати выяснил что если SetScrollInfo(...) вызывать из OnSetFocus,
то часть проблемы исчезает. А именно скролы начинают появляться если перетащить плавающее окно. Но при старте программы их все равно нет

* test1[2009.12.02 16.36].rar (160.59 Кб - загружено 715 раз.)
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 03-12-2009 06:17 » 

UpdateData тут ни при чём Улыбаюсь

-------------

у меня нет такого файла

#include <afxcontrolbars.h>     // поддержка MFC для лент и панелей управления
Записан

rsa_m
Гость
« Ответ #4 : 03-12-2009 07:46 » 

Проект компилится только если на VS2008 поставить SP1. Этот SP добавляет всю эту лабуду типа плавающие окна и т.п.

А по поводу моего вопроса, вот тут http://www.codeguru.com/forum/showthread.php?t=462259 эту тему двигали, но так и не порешали до конца.
« Последнее редактирование: 03-12-2009 07:48 от rsa_m » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines