MF C: как включить изменение страницы с помощью колесика мыши для предварительного просмотра? - PullRequest
0 голосов
/ 13 апреля 2020

В диалоговом окне предварительного просмотра я хотел бы включить изменение страницы с помощью колесика мыши. Поскольку я все еще новичок в программировании на MF C, у меня нет кода для начала. Самый близкий вопрос, который я нашел, - этот (для C#), но четкого ответа пока нет: https://www.codeproject.com/Questions/555242/5bc-23-5dplusprintpreviewdialogplusandplusmousewhe.

1 Ответ

0 голосов
/ 13 апреля 2020

Если вы используете класс CPreviewView MF C, то вы можете получить собственный класс из того, в котором вы можете переопределить член OnMouseWheel. В переопределении вы вызываете обработчик OnVScroll для перемещения вверх или вниз, как если бы вы нажимали стрелки вверх / вниз на полосе прокрутки:

BOOL MyPreviewView::OnMouseWheel(UINT /*flags*/, short delta, CPoint /*point*/)
{
    OnVScroll(UINT((delta < 0) ? SB_LINEDOWN : SB_LINEUP), 0, nullptr);
    return TRUE;
}

Также вам нужно добавить ON_WM_MOUSEWHEEL() к карте сообщений вашего производного класса:

BEGIN_MESSAGE_MAP(MyPreviewView, CPreviewView)
    //...
    ON_WM_MOUSEWHEEL()
    //...
END_MESSAGE_MAP()

Не стесняйтесь просить дальнейших разъяснений и / или объяснений.

...