На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> Упрямый STATIC
    Привет Всем!
    Хотел использовать оконный класс STATIC в своих корыстных целях и установить ему горизонтальный ScrollBar. Вызываю ShowScrollBar(...); SetScrollInfo(...); (в нужных для меня местах), а он работать не желает (не реагирует на воздействие мышью). Если установить стиль SS_NOTIFY, то окно начинает принимать (до этого не принимало) WM_HSCROLL идущие от мышки с колесом (что странно), а сам ScrollBar не работает.
    Помогите разобраться.
    Спасибо за внимание.
      А что если использовать обычный Edit control, установив ему стиль ReadOnly?
        C Edit все работает, но тут уже дело принципа!
          A "Static", имхо, вообще на ввод не реагирует - на то он и статик
            2YuraN
            Я и хочу заставить CStatic реагировать на скроллинг. Ведь CStatic прежде всего CWnd!
              Я хотел сказать, что у статика такая процедура обработки мессаг, что на сообщения
              WM_MOUSEFIRST .. WM_MOUSELAST и WM_KEYFIRST .. WM_KEYLAST она просто
              возвращает 0..
              Имхо, тебе нужен SubclassWindow(...), или как там у вас в МФЦ делается перехват :)
                2YuraN
                ИМХО:SubclassWindow(...) тут непричем! Это делает каркас MFC!
                Самое интересное, что собщения типа WM_LBUTTONDOWN CStatic принимает и обрабатывает, а вот его ScrollBar нет :(
                  Перехвати WM_NCHITTEST и разрули по обстоятельствам
                  т.е
                  if (pt.x > WindowRect.right - GetSystemMetrics(SM_CXVSCROLL))
                  return HTVSCROLL;

                  return HTCLIENT;
                    2migel
                    Спасибо за идею, но она не работает :(.
                    Этот статик вообще считает, что скроллы - это его клиентская область, хотя конечно обработка WM_NCHITTEST пытается разубедить, но....
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0539 ]   [ 16 queries used ]   [ Generated: 17.06.25, 08:53 GMT ]