# include“l_bitmap.h”
L_LTIVW_APIL_BOOLEXT_FUNCTION按钮,L_DispContainerHandlePalette (hCellWnd uMessage uFlags)
和观众提供了一个接口,允许接收消息,通知控制面板已改变。
窗口句柄细胞。
值显示的信息将被发送到浏览器主窗口。
按钮的值传递给消息。
保留以供将来使用。通过0。
价值 | 意义 |
---|---|
成功 | 函数是成功的。 |
< 1 | 一个错误发生。指返回代码。 |
这个函数是用于显示图像在8位查看系统工作时正确的。
允许通过参数uMessage收到消息:
WM_PALETTECHANGED
WM_PALETTEISCHANGING
WM_QUERYNEWPALETTE
WM_SYSCOLORCHANGE
为了使用这个功能,首先设置的uFlags参数L_DispContainerCreate函数CONTAINER_HANDLEPALETTE。
必需的dll和库
平台
工具箱在Win32和x64版本能够支持开发软件应用程序的下列环境:
Windows 10
Windows 8
Windows 7
Windows Vista
Windows XP
Windows 2000
这个示例创建了一个医疗viewer控制作用于8位面板显示监视器。
类型定义结构体tagDATA
{
HBITMAPLIST HBITMAPLIST;
L_BOOL bWindowLevel;
L_INT nAction;
HDISPCONTAINER hCon;
L_INT nApplyToAllSubCells;
HWND hWndAnimationDialog;
}
数据,* LPDATA;
HWND hWndParent;
#定义SETDATA (hwnd, h) L_SETWINDOWLONGPTR (hwnd, GWLP_USERDATA(处理)(h))
#定义LOCKDATA (hwnd) ((LPDATA) GlobalLock((处理)L_GETWINDOWLONGPTR (hwnd, GWLP_USERDATA)))
#定义UNLOCKDATA (hwnd) GlobalUnlock((处理)L_GETWINDOWLONGPTR (hwnd, GWLP_USERDATA))
L_INT CreateNewCell (HWND HWND, L_TCHAR * szText)
{
nIndex L_INT nRet;
LPDATA pData = (LPDATA) LOCKDATA (hWnd);
nRet = L_LoadBitmapList (szText &pData - > hBitmapList 0, ORDER_BGRORGRAY, NULL, NULL);
如果(nRet ! =成功)
返回nRet;
HWND hConWnd = L_DispContainerGetWindowHandle (pData - > hCon, 0);
HWND hCellWnd = L_DispContainerCreateCell (hConWnd 0);
nIndex = L_DispContainerInsertCell (pData - > hCon hCellWnd 1, 0);
nRet = L_DispContainerSetCellBitmapList (hCellWnd,
pData - > hBitmapList,
真的,
0);
返回成功;
}
使用UINT uMessage LRESULT调指向(HWND HWND,按钮按钮,LPARAM LPARAM)
{
LPDATA pData =零;
pData = (LPDATA) LOCKDATA (hWnd);
L_INT nCellIndex = 0;
HWND hCellWnd =零;
hCellWnd = L_DispContainerGetCellWindowHandle (pData - > hCon nCellIndex 0);
开关(uMessage)
{
情况下WM_SYSCOLORCHANGE:
情况下WM_QUERYNEWPALETTE:
如果(hCellWnd ! = NULL)
{
L_DispContainerHandlePalette (hCellWnd uMessage 0,0);
L_DispContainerRepaintCell (hCellWnd 0);
}
打破;
情况下WM_PALETTEISCHANGING:
情况下WM_PALETTECHANGED:
如果(hCellWnd ! = NULL)
{
L_DispContainerHandlePalette (hCellWnd uMessage按钮,0);
L_DispContainerRepaintCell (hCellWnd 0);
}
打破;
}
返回lParam DefWindowProc (hWnd, uMessage按钮);
}
L_INT DispContainerHandlePaletteExample(实例句柄实例句柄)
{
味精uMessage;
WNDCLASS WNDCLASS;
处理hMem;
LPDATA pData;
HACCEL HACCEL;
矩形rcRect;
DISPCONTAINERPROPERTIES DispContainerProp;
DISPCELLPROPERTIES DispCellProp;
L_TCHAR szText [L_MAXPATH];
L_INT nRet;
/ /注册图像子窗口类
wndclass。风格=移| CS_VREDRAW;
wndclass。lpfnWndProc =指向;
wndclass。cbClsExtra = 0;
wndclass。cbWndExtra =运算符(处理);
wndclass。实例句柄=实例句柄;
wndclass。hIcon =零;
wndclass。hCursor = LoadCursor (NULL, IDC_ARROW);
wndclass。hbrBackground = GetStockBrush (GRAY_BRUSH);
wndclass。lpszMenuName =零;
wndclass。lpszClassName =文本(“HandlePaletteExample”);
如果(! RegisterClass (&wndclass))
返回0;
hWndParent = CreateWindowEx (WS_EX_CLIENTEDGE,
文本(“HandlePaletteExample”),
文本(“图像查看器演示”),
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
空,
空,
实例句柄,
零);
hMem = GlobalAlloc (GHND,运算符(数据));
SETDATA (hWndParent hMem);
如果(hMem !)
返回(假);
pData = (LPDATA) LOCKDATA (hWndParent);
memset (pData 0运算符(LPDATA));
pData - > hCon =零;
/ /你必须解开医疗套件为了能够使用医疗观众。
/ / UNLOCKSUPPORT ();
/ /初始化容器,使其与母公司相同的大小。
GetClientRect (hWndParent &rcRect);
pData - > hCon = L_DispContainerCreate (hWndParent、&rcRect CONTAINER_HANDLEPALETTE);
/ /如果有问题发生
如果(pData - > hCon = = NULL)
{
L_INT nError =每个盘();
wsprintf (szText文本(“错误% d”),nError);
对话框(hWndParent、szText、文本(“流产”),MB_OK);
L_DispContainerDestroy (pData - > hCon, 0);
GlobalFree (hMem);
返回虚假的;
}
HWND hCellWnd = L_DispContainerGetCellWindowHandle (pData - > hCon, 0, 0);
/ /添加一些行动并激活它们
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_WINDOWLEVEL 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_ALPHA 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_OFFSET 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_MAG 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_SCALE 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_STACK 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_ANNOTATION_RULER 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_ANNOTATION_ELLIPSE 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_ANNOTATION_RECTANGLE 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_ANNOTATION_TEXT 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_ANNOTATION_ARROW 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_ANNOTATION_ANGLE 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_ANNOTATION_HILITE 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_REGION_RECTANGLE 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_REGION_NUDGETOOL 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_REGION_SHRINKTOOL 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_REGION_ELLIPSE 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_REGION_POLYGON 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_REGION_FREEHAND 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_REGION_MAGICWAND 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_REGION_COLORRANGE 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_REGION_CIRCLE 0);
L_DispContainerAddAction (hCellWnd CONTAINER_ACTION_REGION_SQUARE 0);
/ /分配操作鼠标按钮。
L_DispContainerSetAction (hCellWnd, CONTAINER_ACTION_WINDOWLEVEL CONTAINER_MOUSE_BUTTON_LEFT 0);
L_DispContainerSetAction (hCellWnd, CONTAINER_ACTION_OFFSET CONTAINER_MOUSE_BUTTON_RIGHT 0);
L_DispContainerSetAction (hCellWnd, CONTAINER_ACTION_SCALE CONTAINER_MOUSE_BUTTON_MIDDLE 0);
L_DispContainerSetAction (hCellWnd, CONTAINER_ACTION_STACK CONTAINER_MOUSE_WHEEL 0);
SetCursor (LoadCursor (NULL, IDC_WAIT));
/ /设置图像浏览器界面显示两个细胞,排列水平轴
DispContainerProp。uStructSize =运算符(DISPCONTAINERPROPERTIES);
DispContainerProp。uNumCols = 2;
DispContainerProp。uNumRows = 1;
DispContainerProp。uMask = DCPF_NUMROWS | DCPF_NUMCOLS;
nRet = L_DispContainerSetProperties (pData - > hCon &DispContainerProp 0);
CreateNewCell (hWndParent MAKE_IMAGE_PATH(文本(“xa.dcm”)));
/ /设置一些标记。
L_DispContainerSetCellTag (hCellWnd 2 DISPWIN_ALIGN_TOPLEFT DISPWIN_TYPE_USERDATA,文本(“前女友ID 230-36-5448。”),0);
L_DispContainerSetCellTag (hCellWnd 4 DISPWIN_ALIGN_TOPLEFT DISPWIN_TYPE_FRAME, NULL, 0);
L_DispContainerSetCellTag (hCellWnd 6 DISPWIN_ALIGN_TOPLEFT DISPWIN_TYPE_SCALE, NULL, 0);
L_DispContainerSetCellTag (hCellWnd 2 DISPWIN_ALIGN_BOTTOMLEFT DISPWIN_TYPE_WLCENTERWIDTH, NULL, 0);
L_DispContainerSetCellTag (hCellWnd 1 DISPWIN_ALIGN_BOTTOMLEFT DISPWIN_TYPE_FIELDOFVIEW, NULL, 0);
L_DispContainerSetCellTag (hCellWnd 1 DISPWIN_ALIGN_TOPRIGHT DISPWIN_TYPE_USERDATA,文本(“好,人”),0);
L_DispContainerSetCellTag (hCellWnd 2 DISPWIN_ALIGN_TOPRIGHT DISPWIN_TYPE_USERDATA,文本(“PID 125-98-445”),0);
L_DispContainerSetCellTag (hCellWnd 3 DISPWIN_ALIGN_TOPRIGHT DISPWIN_TYPE_USERDATA,文本(“罗伯特08/02/1929”),0);
L_DispContainerSetCellTag (hCellWnd 5 DISPWIN_ALIGN_TOPRIGHT DISPWIN_TYPE_USERDATA,文本(“03/16/1999”),0);
L_DispContainerSetCellTag (hCellWnd 0 DISPWIN_ALIGN_BOTTOMLEFT DISPWIN_TYPE_RULERUNIT, NULL, 0);
DispCellProp。uStructSize =运算符(DISPCELLPROPERTIES);
DispCellProp。bIsFit = TRUE;
DispCellProp。uMask = DCCELLPF_IMAGE_FIT;
nRet = L_DispContainerSetCellProperties (hCellWnd &DispCellProp 0);
CreateNewCell (hWndParent MAKE_IMAGE_PATH(文本(“mr.dcm”)));
HWND hCellWnd1 = L_DispContainerGetCellWindowHandle (pData - > hCon, 1,0);
/ /设置一些标记
L_DispContainerSetCellTag (hCellWnd1 1 DISPWIN_ALIGN_TOPLEFT DISPWIN_TYPE_USERDATA,文本(“核磁共振”),0);
L_DispContainerSetCellTag (hCellWnd1 2 DISPWIN_ALIGN_TOPLEFT DISPWIN_TYPE_USERDATA,文本(“前女友ID g - 1194 - 24”。),0);
L_DispContainerSetCellTag (hCellWnd1 4 DISPWIN_ALIGN_TOPLEFT DISPWIN_TYPE_FRAME, NULL, 0);
L_DispContainerSetCellTag (hCellWnd1 6 DISPWIN_ALIGN_TOPLEFT DISPWIN_TYPE_SCALE, NULL, 0);
L_DispContainerSetCellTag (hCellWnd1 2 DISPWIN_ALIGN_BOTTOMLEFT DISPWIN_TYPE_WLCENTERWIDTH, NULL, 0);
L_DispContainerSetCellTag (hCellWnd1 1 DISPWIN_ALIGN_BOTTOMLEFT DISPWIN_TYPE_FIELDOFVIEW, NULL, 0);
L_DispContainerSetCellTag (hCellWnd1 0 DISPWIN_ALIGN_BOTTOMLEFT DISPWIN_TYPE_USERDATA,文本(“THK 10毫米”),0);
L_DispContainerSetCellTag (hCellWnd1 3 DISPWIN_ALIGN_BOTTOMLEFT DISPWIN_TYPE_USERDATA,文本(“TR 1333.33”),0);
L_DispContainerSetCellTag (hCellWnd1 4 DISPWIN_ALIGN_BOTTOMLEFT DISPWIN_TYPE_USERDATA,文本(“TE 11.98”),0);
L_DispContainerSetCellTag (hCellWnd1 6 DISPWIN_ALIGN_BOTTOMLEFT DISPWIN_TYPE_USERDATA,文本(“通讯longaxis——正常”),0);
L_DispContainerSetCellTag (hCellWnd1 0 DISPWIN_ALIGN_TOPRIGHT DISPWIN_TYPE_USERDATA,文本(“社区医院”),0);
L_DispContainerSetCellTag (hCellWnd1 1 DISPWIN_ALIGN_TOPRIGHT DISPWIN_TYPE_USERDATA,文本(“不错,”),0);
L_DispContainerSetCellTag (hCellWnd1 2 DISPWIN_ALIGN_TOPRIGHT DISPWIN_TYPE_USERDATA,文本(“PID 123-45-6789”),0);
L_DispContainerSetCellTag (hCellWnd1 3 DISPWIN_ALIGN_TOPRIGHT DISPWIN_TYPE_USERDATA,文本(“罗伯特05/13/1936”),0);
L_DispContainerSetCellTag (hCellWnd1 4 DISPWIN_ALIGN_TOPRIGHT DISPWIN_TYPE_USERDATA,文本(“性M”),0);
L_DispContainerSetCellTag (hCellWnd1 5 DISPWIN_ALIGN_TOPRIGHT DISPWIN_TYPE_USERDATA,文本(“06/26/1995”),0);
/ /设置单元接口所以它显示4帧。
DispCellProp。uNumCols = 2;
DispCellProp。uNumRows = 2;
DispCellProp。bIsFit = TRUE;
DispCellProp。bOnMove = TRUE;
DispCellProp。uMask = DCCELLPF_COLS | DCCELLPF_ROWS | DCCELLPF_IMAGE_FIT | DCCELLPF_APPLYONMOVE;
nRet = L_DispContainerSetCellProperties (hCellWnd1 &DispCellProp 0);
SetCursor (LoadCursor (NULL, IDC_ARROW));
显示窗口(hWndParent SW_MAXIMIZE);
UpdateWindow (hWndParent);
hAccel = LoadAccelerators(实例句柄、文本(“HandlePaletteExample”));
而(GetMessage (&uMessage, NULL, 0, 0))
{
如果(!TranslateMDISysAccel (hWndParent &uMessage) & &
! TranslateAccelerator (hWndParent hAccel, &uMessage))
{
TranslateMessage (&uMessage);
DispatchMessage (&uMessage);
}
}
GlobalFree (hMem);
返回(L_INT) uMessage.wParam;
}