На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
  
> Прокрутка скролла колесиком мыши , WinAPI, без MFC, без ресурсов
    Запускаю приложение, там моя самодельная таблица типа Grid.
    В ней есть скроллы, которые нормально работают, всё это в сабклассинге.

    Появилась следующая проблема. Когда моё приложение теряет фокус, например запустил калькулятор, а затем вернулся к таблице, то перестает работать сабклассинг, причем только обработчик прокрутки колесика мыши, обработчики кнопок скролла, и бегунок скролла работают без проблем.
    Сообщение отредактировано: E.A. -
      Цитата E.A. @
      Запускаю приложение, там моя самодельная таблица типа Grid.
      В ней есть скроллы, которые нормально работают, всё это в сабклассинге.

      Если это самодельный контрол, тогда исследовать
      его работу можешь только ты сам.
      ---
      я попробовал то же самое с Edit-ом - паталогии не обнаружено.
      Всё работает по документации на WM_MOUSEWHEEL.
      Если фокус на главном окне, эти сообщения приходят к нему.
      Если фокус на дочернем Edit-е, сообщения получает Edit.
      Дальше как сделаешь.
      Если вызывается оригинальная процедура контрола (из процедуры
      сабклассинга), сообщение WM_MOUSEWHEEL пересылается родительскому окну.
      ---
      Для прокручивания скролла вовсе не обязательно делать это из сабклассинговой
      процедуры. Если такие сообщения получает родительское окно, в его
      обработчике вполне естественно решать такие вопросы.
      Сообщение отредактировано: ЫукпШ -
        Цитата E.A. @
        PS ещё такой вопросик в рамках этой же темы.
        на просторах интернета я нашел два способа определения в какую сторону крутится колесико мыши.
        1.
        ExpandedWrap disabled
          zDelta = GET_WHEEL_DELTA_WPARAM(wparam)

        2.
        ExpandedWrap disabled
          zDelta = (((POINTS*)&wparam) -> y) / WHEEL_DELTA

        я делал прямо по документации.
        Всё работало правильно.
        WM_MOUSEWHEEL
        Цитата

        ...
        wParam
        The high-order word indicates the distance the wheel is rotated,
        expressed in multiples or divisions of WHEEL_DELTA, which is 120.
        A positive value indicates that the wheel was rotated forward, away from the user;
        a negative value indicates that the wheel was rotated backward, toward the user.

        и в итоге у меня было как то так:
        ExpandedWrap disabled
           short int zDelta = (int) HIWORD(wParam); // wheel rotation
           short int status = (int) LOWORD(wParam);
           int points = zDelta / WHEEL_DELTA;
           bool decLN=true;
           
           if(points < 0)
           {
            points = - points;
            decLN = false;
           }
           if(status == MK_CONTROL)
           {
            if(decLN){decPageNumber();}
            else     {incPageNumber();}
           }
           else
           {
            for(int i=0;i<points;++i)
            {
             if(decLN){decLineNumber();}
             else     {incLineNumber();}
            }
           }
        Сообщение отредактировано: ЫукпШ -
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0223 ]   [ 16 queries used ]   [ Generated: 19.03.24, 04:15 GMT ]