# 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点
联系我们请填写这张表格,我们将通过电子邮件联系你。
