# include“l_bitmap.h”
L_LTDIS_APIL_INTL_CreatePanWindow (hWndParent、pBitmap ulDisplayFlags、nLeft nTop, nWidth, nHeight, pszClassName, hIcon, hCursor, bSysMenu, pfnPanCallback, pUserData)
创建锅窗口并将其与hWndParent关联。
主窗口的句柄,它将会显示pBitmap
。这个窗口将不会父,但将与PanWindow相关联。
位图句柄指针引用PanWindow中的位图显示。
旗帜,确定锅里画图像窗口。值,参考旗帜L_SetDisplayMode函数。
潘X坐标原点的窗口。
Y坐标原点的锅窗口。
要求的宽度锅窗口的客户区。实际的宽度取决于图像的纵横比指出pBitmap
并为nWidth和传递的值nHeight
。
请求的锅窗口的客户区域的高度。实际的高度取决于图像的纵横比指出pBitmap
和传递的值nWidth
和nHeight。
字符串包含注册锅窗口的类名。这必须是一个有效的字符串,应该与您的应用程序,以避免冲突与现有注册窗口类名。
句柄用于锅窗口的图标。通过零没有图标。
光标的句柄用于锅窗口。
真实包括锅上的系统菜单窗口。错误的忽略它。
回调函数做定制绘画和潘矩形更新通知。
空指针,您可以使用它通过一个或多个回调函数需要额外的参数。
要使用该功能,赋值给一个变量或创建一个结构,其中包含你需要的尽可能多的领域。然后,在这个参数,通过变量的地址或结构,铸造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;
打破;
}
返回;
}
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。