Stops the viewer from being refreshed if any change is applied, it is generally useful to increase the control speed efficiency. To resume refreshing, use the LImageViewer::EndUpdate function.
#include "ltwrappr.h"
L_INT LImageViewer::BeginUpdate(uFlags)
Reserved for future use. Pass 0.
| Value | Meaning |
|---|---|
| SUCCESS | The function was successful. |
| < 1 | An error occurred. Refer to Return Codes. |
Stops the viewer from refreshing after each change is applied, until refreshing is resumed by calling LImageViewer::EndUpdate. At that point the viewer will repaint to show all of the changes that have been made. This is useful for better visual results and for speed efficiency.
This example creates a medical viewer control and two cells, then asks whether the apply some effects on the cell with or without using BeginUpdate/EndUpdate. Run this sample twice and see the difference.
#if defined LEADTOOLS_V175_OR_LATERL_INT LImageViewer_BeginUpdateExample(CWnd* pParent, LImageViewer& ImageViewer, LBitmapList BitmapList){DISPCONTAINERPROPERTIES DispContainerProp;DISPCELLPROPERTIES DispCellProp;RECT rcRect;L_INT nRet;L_INT nCellIndex;L_UINT uScaleMode;// Create a container at a size of the its parent.pParent->GetClientRect(&rcRect);nRet = ImageViewer.Create (pParent->GetSafeHwnd(), &rcRect, 0);if(nRet != SUCCESS)return nRet;// Change the number of rows and cols to show all the inserted cells.DispContainerProp.uStructSize = sizeof(DISPCONTAINERPROPERTIES);DispContainerProp.uNumCols = 2;DispContainerProp.uNumRows = 1;DispContainerProp.uMask = DCPF_NUMROWS | DCPF_NUMCOLS;nRet = ImageViewer.SetProperties ( &DispContainerProp, 0);if(nRet != SUCCESS)return nRet;// load a bitmap list.nRet = BitmapList.Load(TEXT("C:\\LEADTOOLS22\\Resources\\Images\\xa.dcm"), 0, ORDER_BGRORGRAY, NULL, NULL);// if the image is corrupted, not found, or not supported, the program will destroy the container and terminateif (nRet != SUCCESS){ImageViewer.Destroy (0);return nRet;}LImageViewerCell * ImageViewerCell = new LImageViewerCell();ImageViewerCell->Create(ImageViewer.GetWindowHandle(0), 0);// Insert a new cell at the end of the container cell queue.nCellIndex = ImageViewer.InsertCell(ImageViewerCell->GetWindowHandle(0), -1, 0);// Attach the loaded bitmaplist to the newly inserted cell.nRet = ImageViewerCell->SetCellBitmapList(BitmapList.GetHandle(),TRUE,0);if(nRet != SUCCESS)return nRet;BitmapList.SetHandle(NULL,NULL,FALSE);// Add some tags to the cellImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image1 Text 1"), 0);nRet = ImageViewerCell->SetCellTag( 1, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image1 Text 2"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(2, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image1 Text 3"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(3, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image1 Text 4"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(1, DISPWIN_ALIGN_LEFTCENTER , 0, TEXT("L"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_BOTTOMLEFT , 0, TEXT("Image1 Text 5"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_TOPCENTER , 0, TEXT("Top"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_BOTTOMCENTER, 0, TEXT("Bottom"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_TOPRIGHT , 0, TEXT("Image1 Text 6"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_RIGHTCENTER , 0, TEXT("R"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(8, DISPWIN_ALIGN_TOPLEFT , DISPWIN_TYPE_FRAME, NULL, 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_BOTTOMRIGHT , DISPWIN_TYPE_OWNERDRAW, NULL, 0);if(nRet != SUCCESS)return nRet;// if the image is corrupted, not found, or not supported, the program will destroy the container and terminateif (nRet != SUCCESS){ImageViewer.Destroy (0);return nRet;}// load another bitmap listnRet = BitmapList.Load(TEXT("C:\\LEADTOOLS22\\Resources\\Images\\image2.dic"), 0, ORDER_BGRORGRAY, NULL, NULL);if(nRet != SUCCESS)return nRet;ImageViewerCell = new LImageViewerCell();ImageViewerCell->Create(ImageViewer.GetWindowHandle(0), 0);// insert a new cell at the end of the container queue.ImageViewer.InsertCell (ImageViewerCell->GetWindowHandle(0), -1, 0);// Attach the loaded bitmap list the newly inserted cell.nRet = ImageViewerCell->SetCellBitmapList (BitmapList.GetHandle(),TRUE,0);if(nRet != SUCCESS)return nRet;BitmapList.SetHandle(NULL,NULL,FALSE);// Add some tags to the cellnRet = ImageViewerCell->SetCellTag (0, DISPWIN_ALIGN_TOPLEFT , 0,TEXT("Image3 Text 1"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(2, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image3 Text 2"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(4, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image3 Text 3"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(6, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image3 Text 4"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(1, DISPWIN_ALIGN_LEFTCENTER , 0, TEXT("Image3 Text 5"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_BOTTOMLEFT , 0, TEXT("Image3 Text 6"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_TOPCENTER , 0, TEXT("Image3 Text 7"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_BOTTOMCENTER, 0, TEXT("Image3 Text 8"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_TOPRIGHT , 0, TEXT("Image3 Text 9"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(0, DISPWIN_ALIGN_RIGHTCENTER , 0, TEXT("R"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(7, DISPWIN_ALIGN_TOPLEFT , DISPWIN_TYPE_SCALE, NULL, 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetCellTag(1, DISPWIN_ALIGN_BOTTOMLEFT , DISPWIN_TYPE_WLCENTERWIDTH, NULL, 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetSubCellTag(8, 0, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Sub Cell Tag 1"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetSubCellTag(0, 8, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Sub Cell Tag 2"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetSubCellTag(1, 9, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Sub Cell Tag 3"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetSubCellTag(2, 10, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Sub Cell Tag 4"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewerCell->SetSubCellTag(3, 11, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Sub Cell Tag 5"), 0);if(nRet != SUCCESS)return nRet;// Change the number of sub-rows and sub-cols.DispCellProp.uStructSize = sizeof(DISPCELLPROPERTIES);DispCellProp.uMask = DCCELLPF_ROWS | DCCELLPF_COLS | DCCELLPF_IMAGE_FIT;DispCellProp.uNumCols = 3;DispCellProp.uNumRows = 3;DispCellProp.bIsFit = FALSE;ImageViewerCell = ImageViewer.GetCellHandle(0, 0);LImageViewerCell * ImageViewerCell1 = ImageViewer.GetCellHandle(1, 0);nRet = ImageViewerCell->SetCellProperties(&DispCellProp, 0);if(nRet != SUCCESS)return nRet;pParent->ShowWindow(SW_MAXIMIZE);pParent->UpdateWindow();L_INT nMessageRet = pParent->MessageBox(TEXT("This demo will do some effects on the Medical viewer, Do you want to use the begin and update update?"), TEXT("Begin Update And End Update Demo"), MB_YESNO);if (nMessageRet == IDYES){ImageViewerCell->BeginUpdate( 0);ImageViewerCell1->BeginUpdate(0);}DISPCELLTAGINFO TagInfo;L_DOUBLE dScale;L_TCHAR szText[100] = TEXT("Edited Text 1");TagInfo.uStructSize = sizeof(DISPCELLTAGINFO);TagInfo.uMask = DCTF_TEXT;TagInfo.szText = szText;ImageViewerCell->EditCellTag(0, DISPWIN_ALIGN_TOPLEFT, &TagInfo, 0);nRet = ImageViewerCell->DeleteCellTag(8, DISPWIN_ALIGN_TOPLEFT, 0);if(nRet != SUCCESS)return nRet;// Shift the second row, one row downnRet = ImageViewerCell->GetCellTag(2, DISPWIN_ALIGN_TOPLEFT, &TagInfo, 0);if(nRet != SUCCESS)return nRet;TagInfo.uPosition += 1;nRet = ImageViewerCell->EditCellTag(2, DISPWIN_ALIGN_TOPLEFT, &TagInfo, 0);if(nRet != SUCCESS)return nRet;// Shift the second row, one row downnRet = ImageViewerCell1->GetSubCellTag(0, 8, DISPWIN_ALIGN_TOPLEFT, &TagInfo, 0);if(nRet != SUCCESS)return nRet;TagInfo.szText = TEXT("Edited sub-cell Tag1");ImageViewerCell1->EditSubCellTag(0, 8, DISPWIN_ALIGN_TOPLEFT, &TagInfo, 0);ImageViewerCell->DeleteSubCellTag(0, 8, DISPWIN_ALIGN_TOPLEFT, 0);ImageViewerCell->AddAction( CONTAINER_ACTION_WINDOWLEVEL, 0);ImageViewerCell->SetAction( CONTAINER_ACTION_WINDOWLEVEL, CONTAINER_MOUSE_BUTTON_LEFT, 0);ImageViewerCell->AddAction( CONTAINER_ACTION_ALPHA, 0);ImageViewerCell->AddAction( CONTAINER_ACTION_OFFSET , 0);ImageViewerCell->AddAction( CONTAINER_ACTION_MAG, 0);ImageViewerCell->AddAction( CONTAINER_ACTION_SCALE , 0);ImageViewerCell->AddAction( CONTAINER_ACTION_STACK , 0);DISPWLEVELACTIONPROPS DispContianerWindowLevel;DispContianerWindowLevel.DispContainerActionProps.uStructSize = sizeof(DISPWLEVELACTIONPROPS);ImageViewerCell->GetActionProperties( CONTAINER_ACTION_WINDOWLEVEL, 0, &DispContianerWindowLevel, CONTAINER_ACTION_CONTAINERLEVEL);ImageViewerCell->GetActionProperties( CONTAINER_ACTION_WINDOWLEVEL, 0, &DispContianerWindowLevel, CONTAINER_ACTION_CELLLEVEL);DispContianerWindowLevel.nWidth = 20;DispContianerWindowLevel.nCenter = 50;ImageViewerCell->SetActionProperties( CONTAINER_ACTION_WINDOWLEVEL, -1, &DispContianerWindowLevel, CONTAINER_ACTION_CELLLEVEL);ImageViewerCell1 = ImageViewer.GetCellHandle(1, 0);ImageViewerCell1->SetActionProperties( CONTAINER_ACTION_WINDOWLEVEL, 0, &DispContianerWindowLevel, CONTAINER_ACTION_CELLLEVEL);ImageViewerCell->GetCellScale(0, &dScale, 0);dScale *= 2;ImageViewerCell->SetCellScale(-1, dScale, 0);if (!ImageViewerCell->IsBitmapFlipped(0, 0))ImageViewerCell->FlipBitmap(-1, 0);if (!ImageViewerCell->IsBitmapReversed(0, 0))ImageViewerCell->ReverseBitmap(-1, 0);ImageViewerCell1->SetCellScale(0, dScale, 0);ImageViewerCell->GetCellScaleMode(0, &uScaleMode, 0);if (uScaleMode != CONTAINER_SCALEMODE_FIT)uScaleMode = CONTAINER_SCALEMODE_FIT;elseuScaleMode = CONTAINER_SCALEMODE_NORMAL;ImageViewerCell1->SetCellScaleMode(-1, uScaleMode, 0);ImageViewerCell->SetCellScaleMode(-1, uScaleMode, 0);if (nMessageRet == IDYES){ImageViewerCell->EndUpdate( 0);ImageViewerCell->EndUpdate(0);}return SUCCESS;}#elseL_INT ImageViewer_BeginUpdateExample(CWnd* pParent, LImageViewer& ImageViewer, LBitmapList BitmapList){DISPCONTAINERPROPERTIES DispContainerProp;DISPCELLPROPERTIES DispCellProp;RECT rcRect;L_INT nRet;L_INT nCellIndex;L_UINT uScaleMode;// Create a container at a size of the its parent.pParent->GetClientRect(&rcRect);nRet = ImageViewer.Create (pParent->GetSafeHwnd(), &rcRect, 0);if(nRet != SUCCESS)return nRet;// Change the number of rows and cols to show all the inserted cells.DispContainerProp.uStructSize = sizeof(DISPCONTAINERPROPERTIES);DispContainerProp.uNumCols = 2;DispContainerProp.uNumRows = 1;DispContainerProp.uMask = DCPF_NUMROWS | DCPF_NUMCOLS;nRet = ImageViewer.SetProperties ( &DispContainerProp, 0);if(nRet != SUCCESS)return nRet;// load a bitmap list.nRet = BitmapList.Load(TEXT("C:\\LEADTOOLS22\\Resources\\Images\\xa.dcm"), 0, ORDER_BGRORGRAY, NULL, NULL);// if the image is corrupted, not found, or not supported, the program will destroy the container and terminateif (nRet != SUCCESS){ImageViewer.Destroy ( FALSE, 0);return nRet;}// Insert a new cell at the end of the container cell queue.nCellIndex = ImageViewer.InsertCell( -1, 0);// Attach the loaded bitmaplist to the newly inserted cell.nRet = ImageViewer.SetCellBitmapList(nCellIndex,BitmapList.GetHandle(),TRUE,0);if(nRet != SUCCESS)return nRet;BitmapList.SetHandle(NULL,NULL,FALSE);// Add some tags to the cellImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image1 Text 1"), 0);nRet = ImageViewer.SetCellTag( nCellIndex, 1, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image1 Text 2"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 2, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image1 Text 3"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 3, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image1 Text 4"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 1, DISPWIN_ALIGN_LEFTCENTER , 0, TEXT("L"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_BOTTOMLEFT , 0, TEXT("Image1 Text 5"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_TOPCENTER , 0, TEXT("Top"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_BOTTOMCENTER, 0, TEXT("Bottom"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_TOPRIGHT , 0, TEXT("Image1 Text 6"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_RIGHTCENTER , 0, TEXT("R"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 8, DISPWIN_ALIGN_TOPLEFT , DISPWIN_TYPE_FRAME, NULL, 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_BOTTOMRIGHT , DISPWIN_TYPE_OWNERDRAW, NULL, 0);if(nRet != SUCCESS)return nRet;// if the image is corrupted, not found, or not supported, the program will destroy the container and terminateif (nRet != SUCCESS){ImageViewer.Destroy ( FALSE, 0);return nRet;}// load another bitmap listnRet = BitmapList.Load(TEXT("C:\\LEADTOOLS22\\Resources\\Images\\image2.dic"), 0, ORDER_BGRORGRAY, NULL, NULL);if(nRet != SUCCESS)return nRet;// insert a new cell at the end of the container queue.nCellIndex = ImageViewer.InsertCell ( -1, 0);// Attach the loaded bitmap list the newly inserted cell.nRet = ImageViewer.SetCellBitmapList (nCellIndex,BitmapList.GetHandle(),TRUE,0);if(nRet != SUCCESS)return nRet;BitmapList.SetHandle(NULL,NULL,FALSE);// Add some tags to the cellnRet = ImageViewer.SetCellTag ( nCellIndex, 0, DISPWIN_ALIGN_TOPLEFT , 0,TEXT("Image3 Text 1"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 2, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image3 Text 2"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 4, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image3 Text 3"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 6, DISPWIN_ALIGN_TOPLEFT , 0, TEXT("Image3 Text 4"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 1, DISPWIN_ALIGN_LEFTCENTER , 0, TEXT("Image3 Text 5"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_BOTTOMLEFT , 0, TEXT("Image3 Text 6"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_TOPCENTER , 0, TEXT("Image3 Text 7"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_BOTTOMCENTER, 0, TEXT("Image3 Text 8"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_TOPRIGHT , 0, TEXT("Image3 Text 9"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 0, DISPWIN_ALIGN_RIGHTCENTER , 0, TEXT("R"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 7, DISPWIN_ALIGN_TOPLEFT , DISPWIN_TYPE_SCALE, NULL, 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetCellTag( nCellIndex, 1, DISPWIN_ALIGN_BOTTOMLEFT , DISPWIN_TYPE_WLCENTERWIDTH, NULL, 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetSubCellTag( 0, 8, 0, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Sub Cell Tag 1"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetSubCellTag( 1, 0, 8, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Sub Cell Tag 2"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetSubCellTag( 1, 1, 9, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Sub Cell Tag 3"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetSubCellTag( 1, 2, 10, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Sub Cell Tag 4"), 0);if(nRet != SUCCESS)return nRet;nRet = ImageViewer.SetSubCellTag( 1, 3, 11, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Sub Cell Tag 5"), 0);if(nRet != SUCCESS)return nRet;// Change the number of sub-rows and sub-cols.DispCellProp.uStructSize = sizeof(DISPCELLPROPERTIES);DispCellProp.uMask = DCCELLPF_ROWS | DCCELLPF_COLS | DCCELLPF_IMAGE_FIT;DispCellProp.uNumCols = 3;DispCellProp.uNumRows = 3;DispCellProp.bIsFit = FALSE;nRet = ImageViewer.SetCellProperties( 0, &DispCellProp, 0);if(nRet != SUCCESS)return nRet;pParent->ShowWindow(SW_MAXIMIZE);pParent->UpdateWindow();L_INT nMessageRet = pParent->MessageBox(TEXT("This demo will do some effects on the Medical viewer, Do you want to use the begin and update update?"), TEXT("Begin Update And End Update Demo"), MB_YESNO);if (nMessageRet == IDYES)ImageViewer.BeginUpdate( 0);DISPCELLTAGINFO TagInfo;L_DOUBLE dScale;L_TCHAR szText[100] = TEXT("Edited Text 1");TagInfo.uStructSize = sizeof(DISPCELLTAGINFO);TagInfo.uMask = DCTF_TEXT;TagInfo.szText = szText;ImageViewer.EditCellTag( 0, 0, DISPWIN_ALIGN_TOPLEFT, &TagInfo, 0);nRet = ImageViewer.DeleteCellTag( 0, 8, DISPWIN_ALIGN_TOPLEFT, 0);if(nRet != SUCCESS)return nRet;// Shift the second row, one row downnRet = ImageViewer.GetCellTag( 0, 2, DISPWIN_ALIGN_TOPLEFT, &TagInfo, 0);if(nRet != SUCCESS)return nRet;TagInfo.uPosition += 1;nRet = ImageViewer.EditCellTag( 0, 2, DISPWIN_ALIGN_TOPLEFT, &TagInfo, 0);if(nRet != SUCCESS)return nRet;// Shift the second row, one row downnRet = ImageViewer.GetSubCellTag( 1, 0, 8, DISPWIN_ALIGN_TOPLEFT, &TagInfo, 0);if(nRet != SUCCESS)return nRet;TagInfo.szText = TEXT("Edited sub-cell Tag1");ImageViewer.EditSubCellTag( 1, 0, 8, DISPWIN_ALIGN_TOPLEFT, &TagInfo, 0);ImageViewer.DeleteSubCellTag( 0, 0, 8, DISPWIN_ALIGN_TOPLEFT, 0);ImageViewer.AddAction( CONTAINER_ACTION_WINDOWLEVEL, 0);ImageViewer.SetAction( CONTAINER_ACTION_WINDOWLEVEL, CONTAINER_MOUSE_BUTTON_LEFT, 0);ImageViewer.AddAction( CONTAINER_ACTION_ALPHA, 0);ImageViewer.AddAction( CONTAINER_ACTION_OFFSET , 0);ImageViewer.AddAction( CONTAINER_ACTION_MAG, 0);ImageViewer.AddAction( CONTAINER_ACTION_SCALE , 0);ImageViewer.AddAction( CONTAINER_ACTION_STACK , 0);DISPWLEVELACTIONPROPS DispContianerWindowLevel;DispContianerWindowLevel.DispContainerActionProps.uStructSize = sizeof(DISPWLEVELACTIONPROPS);ImageViewer.GetActionProperties( CONTAINER_ACTION_WINDOWLEVEL, 0, 0, &DispContianerWindowLevel, CONTAINER_ACTION_CONTAINERLEVEL);ImageViewer.GetActionProperties( CONTAINER_ACTION_WINDOWLEVEL, 0, 0, &DispContianerWindowLevel, CONTAINER_ACTION_CELLLEVEL);DispContianerWindowLevel.nWidth = 20;DispContianerWindowLevel.nCenter = 50;ImageViewer.SetActionProperties( CONTAINER_ACTION_WINDOWLEVEL, 0, -1, &DispContianerWindowLevel, CONTAINER_ACTION_CELLLEVEL);ImageViewer.SetActionProperties( CONTAINER_ACTION_WINDOWLEVEL, 1, 0, &DispContianerWindowLevel, CONTAINER_ACTION_CELLLEVEL);ImageViewer.GetCellScale( 0, 0, &dScale, 0);dScale *= 2;ImageViewer.SetCellScale( 0, -1, dScale, 0);if (!ImageViewer.IsBitmapFlipped(0, 0, 0))ImageViewer.FlipBitmap(0, -1, 0);if (!ImageViewer.IsBitmapReversed(0, 0, 0))ImageViewer.ReverseBitmap(0, -1, 0);ImageViewer.SetCellScale( 1, 0, dScale, 0);ImageViewer.GetCellScaleMode( 0, 0, &uScaleMode, 0);if (uScaleMode != CONTAINER_SCALEMODE_FIT)uScaleMode = CONTAINER_SCALEMODE_FIT;elseuScaleMode = CONTAINER_SCALEMODE_NORMAL;ImageViewer.SetCellScaleMode( 1, -1, uScaleMode, 0);ImageViewer.SetCellScaleMode( 0, -1, uScaleMode, 0);if (nMessageRet == IDYES)ImageViewer.EndUpdate( 0);return SUCCESS;}#endif // LTVXX_CONFIG