处理窗口滚动消息

在处理滚动消息时,用户应该设置绘制偏移量以反映新的坐标转换。

下面的例子展示了如何处理水平滚动消息:

//这是一个例子假设,我们有一个有效的铅油漆手柄和一个有效的// LEAD位图句柄,用户已经初始化了当前水平//和垂直滚动位置变量BITMAPHANDLE g_PaintBitmap;矩形g_rcBitmapView;intg_nHScrollPos;intg_nVScrollPos;L_VOID OnHScroll (HWND HWND, HWND hWndCtl, L_UINT nCode, L_INT nPos)SCROLLINFO si;PAINTXFORM PntXForm;UNREFERENCED_PARAMETER (nPos);(hWndCtl);si。cbSize =运算符(scrollinfo);si。fMask = SIF_ALL;GetScrollInfo (hWnd, SB_HORZ, &si);g_nHScrollPos = si。非营利组织;开关(nCode)情况下SB_LINELEFT:si。nPos -= 1;打破情况下SB_LINERIGHT:si。nPos += 1;打破情况下SB_PAGELEFT:si。非营利组织——= si。nPage;打破情况下SB_PAGERIGHT:si。非营利组织+ = si。nPage;打破情况下SB_THUMBTRACK:si。非营利组织= si。nTrackPos;打破默认的打破si。fMask = SIF_POS;SetScrollInfo (hWnd, SB_HORZ, &si, TRUE);GetScrollInfo (hWnd, SB_HORZ, &si);如果(si。nPos != g_nHScrollPos)/ /更新屏幕。OffsetRect (&g_rcBitmapView, (g_nHScrollPos - si.)nPos), 0);ScrollWindow (hWnd, (g_nHScrollPos - si.)nPos), 0, NULL, NULL);g_nHScrollPos = si。非营利组织;更新窗口(hWnd);//设置绘画转换。PntXForm。nZoom = 100;PntXForm。nXOffset = - g_rcBitmapView。离开;PntXForm。nYOffset = - g_rcBitmapView。最高;l_pntsettransform (g_pPaintHandle, &PntXForm);

LEADTOOLS数字油漆C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。