L_CreatePanWindow

# include“l_bitmap.h”

L_LTDIS_APIL_INTL_CreatePanWindow (hWndParent、pBitmap ulDisplayFlags、nLeft nTop, nWidth, nHeight, pszClassName, hIcon, hCursor, bSysMenu, pfnPanCallback, pUserData)

创建锅窗口并将其与hWndParent关联。

参数

L_HWNDhWndParent

主窗口的句柄,它将会显示pBitmap。这个窗口将不会父,但将与PanWindow相关联。

pBITMAPHANDLEpBitmap

位图句柄指针引用PanWindow中的位图显示。

L_UINTulDisplayFlags

旗帜,确定锅里画图像窗口。值,参考旗帜L_SetDisplayMode函数

L_INTnLeft

潘X坐标原点的窗口。

L_INTnTop

Y坐标原点的锅窗口。

L_INTnWidth

要求的宽度锅窗口的客户区。实际的宽度取决于图像的纵横比指出pBitmap并为nWidth和传递的值nHeight

L_INTnHeight

请求的锅窗口的客户区域的高度。实际的高度取决于图像的纵横比指出pBitmap和传递的值nWidth和nHeight。

L_TCHAR* pszClassName

字符串包含注册锅窗口的类名。这必须是一个有效的字符串,应该与您的应用程序,以避免冲突与现有注册窗口类名。

L_HICONhIcon

句柄用于锅窗口的图标。通过零没有图标。

L_HCURSORhCursor

光标的句柄用于锅窗口。

L_BOOLbSysMenu

真实包括锅上的系统菜单窗口。错误的忽略它。

PANWNDCALLBACKpfnPanCallback

回调函数做定制绘画和潘矩形更新通知。

L_VOID* pUserData

空指针,您可以使用它通过一个或多个回调函数需要额外的参数。

要使用该功能,赋值给一个变量或创建一个结构,其中包含你需要的尽可能多的领域。然后,在这个参数,通过变量的地址或结构,铸造L_VOID *。回调函数,接收地址的pUserData参数,可以把它适当的数据类型的指针来访问变量或结构。

如果不需要额外的参数,该参数可以传递NULL。

返回

价值 意义
成功 函数是成功的。
< 1 一个错误发生。指返回代码

评论

这个函数创建锅窗口和同事hWndParent

潘窗口宽度和高度将调整占图像的纵横比指出pBitmap。您必须指定一个PANWNDCALLBACK回调函数做定制绘画或通知互动锅矩形更新。潘矩形位置,调用L_UpdatePanWindow函数。你必须使用L_DestroyPanWindow摧毁锅窗口和与之相关的所有数据。

请注意:调用应用程序负责协调潘潘窗口的矩形和实际显示主窗口的矩形。

调用L_UpdatePanWindow使窗口可见,并设置锅矩形。

必需的dll和库

平台

Win32 x64, Linux。

另请参阅

功能

例子

将下面的代码添加到SCRLZOOM结束。C:
下面提供了一个快捷方便的查看方法一锅窗口。
使此示例更容易进入的地方,一些全局变量的使用。
潘为完整的示例代码窗口中,指的是孩子。C的演示示例程序。

/ / SCRLZOOM添加以下代码。C SCRLZOOM演示。/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#定义PANWINDOW_CLASS文本(“L_PANWINDOW_32”)L_UINT32 ulFlags = 0;L_HWND ghPanWindow;L_BOOL bUpdatePan = FALSE;L_BOOL bPanWindow = FALSE;L_INT gnZoom = 100;L_HWND ghBitmapWnd;L_BOOL fFitImage = FALSE;L_VOID CreatePanWindowExample (L_HWND hWnd);L_VOID EXT_CALLBACK PanWindowCallback (L_HWND hPanWindow, L_HWND hWndParent, L_UINT uMsg, LPRECT prcPan, L_VOID * pUserData);/ /添加以下代码在SCRLZOOM MainWndProc的switch语句。C,之后HANDLE_MSG (hWnd, WM_DESTROY Window_OnDestroy);案例WM_KEYDOWN:CreatePanWindowExample (hWnd);/ /添加以下代码后立即调用L_PaintDC (hDC,平差。位图,零,零,平差。rcView, ps。rcPaint SRCCOPY);在SCRLZOOM Window_OnPaint函数。C:L_UpdatePanWindow (ghPanWindow平差。位图、ulFlags RGB(255, 0, 0),文本(“锅窗口”),&Data.rcView);/ /添加以下代码之前立即PostQuitMessage (0);在SCRLZOOM WIndow_OnDestroy。C:bPanWindow = FALSE;如果(ghPanWindow)L_DestroyPanWindow (ghPanWindow);/ /下面的代码添加到SCRLZOOM的结束。C:L_VOID CreatePanWindowExample (L_HWND hWnd){/ /如果没有PanWindow,创建一个如果(bPanWindow = = 0){bUpdatePan = TRUE;ulFlags = DISPLAYMODE_SCALETOGRAY;L_CreatePanWindow (hWnd,平差。位图ulFlags 0, 0, 150, 150, PANWINDOW_CLASS,空,空,真的,PANWNDCALLBACK PanWindowCallback,零);ghBitmapWnd = hWnd;L_UpdatePanWindow (ghPanWindow平差。位图、ulFlags RGB(255, 0, 0),文本(“锅窗口”),&Data.rcView);}返回;}L_VOID EXT_CALLBACK PanWindowCallback (L_HWND hPanWindow,L_HWND hWndParent,L_UINT uMsg,LPRECT prcPan,L_VOID * pUserData){点Pt;L_INT dy, dx;/ /这个调整gnZoom值时,主窗口缩放。如果(数据)。nScalar > 0)gnZoom =(数据。nScalar + 1) * 100;else if(数据。nScalar < 0)gnZoom =(数据。nScalar - 1) * 100;else if(数据。nScalar = = 0)gnZoom = 100;开关(uMsg){案例PANWIN_CREATED:ghPanWindow = hPanWindow;打破;案例PANWIN_UPDATED:Pt.x = prcPan - >左;Pt.y = prcPan - >最高;dx = Data.rcView。对- Data.rcView.left;dy = Data.rcView。底- Data.rcView.top;Data.rcView。左= min(数据。nHScrollMax MulDiv (Pt。x, gnZoom, 100));Data.rcView。正确的= Data.rcView。左+ dx;Data.rcView。顶级= min(数据。nVScrollMax MulDiv (Pt。y, gnZoom, 100));Data.rcView。底= Data.rcView。前+ dy;bUpdatePan = FALSE;数据。nHScrollPos = -Data.rcView.left;数据。nVScrollPos = -Data.rcView.top;SetScrollPos (ghBitmapWnd SB_HORZ,数据。nHScrollPos,真正的);SetScrollPos (ghBitmapWnd SB_VERT,数据。nVScrollPos,真正的);InvalidateRect (ghBitmapWnd, NULL,假);UpdateWindow (ghBitmapWnd);打破;案例PANWIN_DESTROYED:hPanWindow =零;bPanWindow = FALSE;打破;}返回;}* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /

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