// ImgConVwView.cpp : implementation of the CImgConVwView class // #include "stdafx.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CImgConVwView IMPLEMENT_DYNCREATE(CImgConVwView, CFormView) BEGIN_MESSAGE_MAP(CImgConVwView, CFormView) //{{AFX_MSG_MAP(CImgConVwView) ON_COMMAND(IDM_FILE_INSERT, OnInsertCell) ON_WM_CREATE() ON_WM_DESTROY() ON_WM_SIZE() ON_WM_ERASEBKGND() ON_COMMAND(ID_EDIT_FREEZECELL, OnEditFreezeCell) ON_COMMAND(ID_EDIT_TOGGLEFREEZE, OnEditToggleFreeze) ON_COMMAND(ID_EDIT_SELECTALL, OnEditSelectAll) ON_COMMAND(ID_EDIT_SELECTINV, OnEditSelectInv) ON_COMMAND(ID_EDIT_DESELECTALL, OnEditDeselectAll) ON_COMMAND(ID_EDIT_SETCELLPOS, OnEditSetCellPos) ON_COMMAND(ID_EDIT_REMOVE, OnEditRemove) ON_COMMAND(ID_EDIT_REMOVESELECTED, OnEditRemoveSelected) ON_UPDATE_COMMAND_UI(ID_EDIT_FREEZECELL, OnUpdateEditFreezeCell) ON_UPDATE_COMMAND_UI(ID_EDIT_TOGGLEFREEZE, OnUpdateEditToggleFreeze) ON_UPDATE_COMMAND_UI(ID_EDIT_SELECTALL, OnUpdateEditSelectAll) ON_UPDATE_COMMAND_UI(ID_EDIT_SELECTINV, OnUpdateEditSelectInv) ON_UPDATE_COMMAND_UI(ID_EDIT_DESELECTALL, OnUpdateEditDeselectAll) ON_UPDATE_COMMAND_UI(ID_EDIT_SETCELLPOS, OnUpdateEditSetCellPos) ON_UPDATE_COMMAND_UI(ID_EDIT_REMOVE, OnUpdateEditRemove) ON_UPDATE_COMMAND_UI(ID_EDIT_REMOVESELECTED, OnUpdateEditRemoveSelected) ON_COMMAND(ID_PROPERTIES_CONTAINERPROPERTIES, OnPropertiesContainer) ON_COMMAND(ID_PROPERTIES_CELLPROPERTIES, OnPropertiesCell) ON_UPDATE_COMMAND_UI(ID_PROPERTIES_CELLPROPERTIES, OnUpdatePropertiesCell) ON_COMMAND(IDM_WINDOWLEVEL_SET, OnWindowLevelSet) ON_COMMAND(IDM_WINDOWLEVEL_CUSTOM, OnWindowLevelCustom) ON_COMMAND(IDM_ALPHA_SET, OnAlphaSet) ON_COMMAND(IDM_ALPHA_CUSTOM, OnAlphaCustom) ON_COMMAND(IDM_RESIZE_SET, OnResizeSet) ON_COMMAND(IDM_RSZ_CUSTOM, OnResizeCustom) ON_COMMAND(IDM_STACK_SET, OnStackSet) ON_COMMAND(IDM_STACK_CUSTOM, OnStackCustom) ON_COMMAND(IDM_MAG_SET, OnMagSet) ON_COMMAND(IDM_MAG_CUSTOM, OnMagCustom) ON_COMMAND(ID_STATISTICS_STATISTICS, OnStatistics) ON_COMMAND(IDM_OFFSET_SET, OnOffsetSet) ON_COMMAND(IDM_OFFSET_CUSTOM, OnOffsetCustom) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CImgConVwView construction/destruction CImgConVwView::CImgConVwView() : CFormView(CImgConVwView::IDD) { ZeroMemory(m_arrCurrentActionButton, sizeof(L_UINT) * 7); ZeroMemory(m_arrCurrentActionFlags, sizeof(L_UINT) * 7); m_arrCurrentActionButton[CONTAINER_ACTION_WINDOWLEVEL] = CONTAINER_MOUSE_BUTTON_LEFT; m_arrCurrentActionButton[CONTAINER_ACTION_OFFSET] = CONTAINER_MOUSE_BUTTON_RIGHT; m_arrCurrentActionButton[CONTAINER_ACTION_SCALE] = CONTAINER_MOUSE_BUTTON_MIDDLE; m_arrCurrentActionButton[CONTAINER_ACTION_STACK] = CONTAINER_MOUSE_WHEEL; LBase::LoadLibraries(LT_KRN); LBase::LoadLibraries(LT_DIS); LBase::LoadLibraries(LT_FIL); LBase::LoadLibraries(LT_IMG); LBase::LoadLibraries(LT_DLG); LBase::LoadLibraries(LT_IMGVIEWER); LDialogBase::Initialize(DLG_INIT_COLOR); WRPUNLOCKSUPPORT(); } CImgConVwView::~CImgConVwView() { LBase::UnloadLibraries(LT_KRN); LBase::UnloadLibraries(LT_DIS); LBase::UnloadLibraries(LT_FIL); LBase::UnloadLibraries(LT_IMG); LBase::UnloadLibraries(LT_DLG); LBase::UnloadLibraries(LT_IMGVIEWER); LDialogBase::Free(); } void CImgConVwView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(CImgConVwView) // NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP } BOOL CImgConVwView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CFormView::PreCreateWindow(cs); } void CImgConVwView::OnInitialUpdate() { CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); SetScrollSizes(MM_TEXT, CSize(1,1)); } BOOL CImgConVwView::OnEraseBkgnd(CDC* pDC) { return FALSE; } ///////////////////////////////////////////////////////////////////////////// // CImgConVwView diagnostics #ifdef _DEBUG void CImgConVwView::AssertValid() const { CFormView::AssertValid(); } void CImgConVwView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } CImgConVwDoc* CImgConVwView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CImgConVwDoc))); return (CImgConVwDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CImgConVwView message handlers void CImgConVwView::OnInsertCell() { CInsertCellDlg InsertCellDlg(m_ImageViewer.GetCellCount(0)); if(InsertCellDlg.DoModal() == IDOK) InsertCellFromFile(InsertCellDlg.m_nIndex, InsertCellDlg.m_nAppend); } void CImgConVwView::InsertCellFromFile(int nIndex, int nAppend) { LDialogFile* pLeadDialog = new LDialogFile() ; LFileSettings FileSettings; OPENFILENAME OpenFileName; OPENDLGPARAMS FOParm; memset ( &FOParm, 0, sizeof(OPENDLGPARAMS)) ; memset ( &OpenFileName, 0, sizeof(OPENFILENAME)) ; OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.lpstrInitialDir = NULL; OpenFileName.Flags = OFN_ALLOWMULTISELECT; FOParm.bPreviewEnabled = TRUE; FOParm.uStructSize = sizeof(OPENDLGPARAMS); FOParm.uDlgFlags = DLG_OPEN_ENABLESIZING | DLG_OPEN_SHOW_PREVIEW | DLG_OPEN_USEFILESTAMP | DLG_OPEN_SHOW_PROGRESSIVE | DLG_OPEN_SHOW_MULTIPAGE | DLG_OPEN_SHOW_DELPAGE | DLG_OPEN_SHOW_LOADROTATED | DLG_OPEN_SHOW_LOADCOMPRESSED | DLG_OPEN_SHOW_LOADOPTIONS | DLG_OPEN_SHOW_FILEINFO | DLG_OPEN_SHOW_PDFOPTIONS | DLG_OPEN_SHOW_RASTEROPTIONS | DLG_OPEN_SHOW_VECTOROPTIONS | DLG_OPEN_SHOW_PDFOPTIONS | DLG_OPEN_VIEWTOTALPAGES; pLeadDialog->SetOpenParams(&FOParm) ; pLeadDialog->SetOpenFileName(&OpenFileName) ; pLeadDialog->EnablePreview(TRUE); if(pLeadDialog->DoModalOpen(0) == SUCCESS_DLG_OK) { pLeadDialog->GetOpenParams (&FOParm, sizeof(FOParm)) ; for (L_INT nI = 0; nI < FOParm.nNumOfFiles; nI++) { if ( NULL != FOParm.pFileData[nI].pFileInfo ) { LOADFILEOPTION LoadFileOption; LBaseFile::GetDefaultLoadFileOption(&LoadFileOption, sizeof(LoadFileOption)); LoadFileOption.PageNumber = FOParm.pFileData[nI].nPageNumber; LoadFileOption.uStructSize = sizeof(LOADFILEOPTION); m_BitmapList.SetHandle(NULL, NULL,false); switch(FOParm.pFileData[nI].FileOptions.nType) { case FILE_CMW: case FILE_JP2: case FILE_J2K: case FILE_JBIG: case FILE_FPX: case FILE_FPX_SINGLE_COLOR: case FILE_FPX_JPEG: case FILE_FPX_JPEG_QFACTOR: FileSettings.SetLoadResolution (FOParm.pFileData[nI].FileOptions.nType, ((LPOPENDLGOPTIONS_RASTERMISC)FOParm.pFileData[nI].FileOptions.pOptions)->uXResolution, ((LPOPENDLGOPTIONS_RASTERMISC)FOParm.pFileData[nI].FileOptions.pOptions)->uYResolution); } L_INT nRet = m_BitmapList.Load(FOParm.pFileData[nI].szFileName, 0, ORDER_BGRORGRAY, &LoadFileOption, NULL); nIndex = m_ImageViewer.InsertCell(nIndex, 0); nRet = m_ImageViewer.SetCellBitmapList(nIndex, m_BitmapList.GetHandle(), TRUE, 0); m_ImageViewer.SetCellTag(nIndex, 0, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 1"), 0); m_ImageViewer.SetCellTag(nIndex, 1, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 2"), 0); m_ImageViewer.SetCellTag(nIndex, 2, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 3"), 0); m_ImageViewer.SetCellTag(nIndex, 3, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 4"), 0); m_ImageViewer.SetCellTag(nIndex, 4, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 5"), 0); m_ImageViewer.SetCellTag(nIndex, 5, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 6"), 0); m_ImageViewer.SetCellTag(nIndex, 6, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 7"), 0); m_ImageViewer.SetCellTag(nIndex, 1, DISPWIN_ALIGN_LEFTCENTER, DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 8"), 0); m_ImageViewer.SetCellTag(nIndex, 1, DISPWIN_ALIGN_BOTTOMLEFT, DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 9"), 0); m_ImageViewer.SetCellTag(nIndex, 0, DISPWIN_ALIGN_TOPCENTER , DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 10"), 0); m_ImageViewer.SetCellTag(nIndex, 0, DISPWIN_ALIGN_BOTTOMCENTER, DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 12"), 0); m_ImageViewer.SetCellTag(nIndex, 0, DISPWIN_ALIGN_TOPRIGHT , DISPWIN_TYPE_USERDATA, TEXT("Overlay Text 11"), 0); m_ImageViewer.SetCellTag(nIndex, 0, DISPWIN_ALIGN_RIGHTCENTER , DISPWIN_TYPE_USERDATA, TEXT("R"), 0); m_ImageViewer.SetCellTag(nIndex, 7, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_SCALE, NULL, 0); m_ImageViewer.SetCellTag(nIndex, 8, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_FRAME, NULL, 0); m_ImageViewer.SetCellTag(nIndex, 3, DISPWIN_ALIGN_BOTTOMLEFT, DISPWIN_TYPE_FIELDOFVIEW, NULL, 0); FOParm.pFileData[nI].pBitmap = NULL; } } } delete pLeadDialog; } int CImgConVwView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFormView::OnCreate(lpCreateStruct) == -1) return -1; RECT rc; DISPCONTAINERPROPERTIES DispContainerProp; DISPCELLPROPERTIES DispCellProp; CString szText; L_INT nRet = 0; GetClientRect(&rc); nRet = m_ImageViewer.Create(this->GetSafeHwnd(), &rc, 0); if(nRet != SUCCESS) exit(0); m_ImageViewer.AddAction(CONTAINER_ACTION_WINDOWLEVEL, 0); m_ImageViewer.AddAction(CONTAINER_ACTION_ALPHA, 0); m_ImageViewer.AddAction(CONTAINER_ACTION_OFFSET , 0); m_ImageViewer.AddAction(CONTAINER_ACTION_MAG, 0); m_ImageViewer.AddAction(CONTAINER_ACTION_SCALE , 0); m_ImageViewer.AddAction(CONTAINER_ACTION_STACK , 0); m_ImageViewer.SetAction(CONTAINER_ACTION_WINDOWLEVEL, CONTAINER_MOUSE_BUTTON_LEFT, 0); m_ImageViewer.SetAction(CONTAINER_ACTION_OFFSET, CONTAINER_MOUSE_BUTTON_RIGHT, 0); m_ImageViewer.SetAction(CONTAINER_ACTION_SCALE, CONTAINER_MOUSE_BUTTON_MIDDLE, 0); m_ImageViewer.SetAction(CONTAINER_ACTION_STACK, CONTAINER_MOUSE_WHEEL, 0); m_ImageViewer.SetKeyboardAction(CONTAINER_ACTION_OFFSET, CONTAINER_MOUSEMOVE_DOWN, VK_DOWN, 0); m_ImageViewer.SetKeyboardAction(CONTAINER_ACTION_OFFSET, CONTAINER_MOUSEMOVE_UP, VK_UP, 0); m_ImageViewer.SetKeyboardAction(CONTAINER_ACTION_OFFSET, CONTAINER_MOUSEMOVE_LEFT, VK_LEFT, 0); m_ImageViewer.SetKeyboardAction(CONTAINER_ACTION_OFFSET, CONTAINER_MOUSEMOVE_RIGHT, VK_RIGHT, 0); m_ImageViewer.SetKeyboardAction(CONTAINER_ACTION_WINDOWLEVEL, CONTAINER_MOUSEMOVE_DOWN, VK_DOWN, CONTAINER_KEY_CTRL); m_ImageViewer.SetKeyboardAction(CONTAINER_ACTION_WINDOWLEVEL, CONTAINER_MOUSEMOVE_UP, VK_UP, CONTAINER_KEY_CTRL); m_ImageViewer.SetKeyboardAction(CONTAINER_ACTION_WINDOWLEVEL, CONTAINER_MOUSEMOVE_LEFT, VK_LEFT, CONTAINER_KEY_CTRL); m_ImageViewer.SetKeyboardAction(CONTAINER_ACTION_WINDOWLEVEL, CONTAINER_MOUSEMOVE_RIGHT, VK_RIGHT, CONTAINER_KEY_CTRL); m_ImageViewer.SetKeyboardAction(CONTAINER_ACTION_SCALE, CONTAINER_MOUSEMOVE_UP, VK_SUBTRACT, 0); m_ImageViewer.SetKeyboardAction(CONTAINER_ACTION_SCALE, CONTAINER_MOUSEMOVE_DOWN, VK_ADD, 0); DispContainerProp.uStructSize = sizeof(DISPCONTAINERPROPERTIES); DispContainerProp.uNumCols = 2; DispContainerProp.uNumRows = 1; DispContainerProp.uMask = DCPF_NUMROWS | DCPF_NUMCOLS; m_ImageViewer.SetProperties(&DispContainerProp, 0); if (MessageBox(TEXT("The \"Image Viewer Demo\" can load sample DICOM images to demonstrate the capabilities of the \"LEADTOOLS Image Viewer Control\". \n Would you like to load these images now?"), TEXT("Initiallization"), MB_YESNO) == IDYES) { szText = TEXT("..\\..\\..\\Images\\XA.dcm"); if (CreateNewCell(szText) != SUCCESS) { szText = TEXT("..\\Images\\XA.dcm"); CreateNewCell(szText); } m_ImageViewer.SetCellTag(0, 2, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("EX. ID 230-36-5448"), 0); m_ImageViewer.SetCellTag(0, 4, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_FRAME, NULL,0); m_ImageViewer.SetCellTag(0, 6, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_SCALE, NULL,0); m_ImageViewer.SetCellTag(0, 2, DISPWIN_ALIGN_BOTTOMLEFT, DISPWIN_TYPE_WLCENTERWIDTH, NULL,0); m_ImageViewer.SetCellTag(0, 1, DISPWIN_ALIGN_BOTTOMLEFT, DISPWIN_TYPE_FIELDOFVIEW, NULL,0); m_ImageViewer.SetCellTag(0, 1, DISPWIN_ALIGN_TOPRIGHT, DISPWIN_TYPE_USERDATA, TEXT("Good, Guy"), 0); m_ImageViewer.SetCellTag(0, 2, DISPWIN_ALIGN_TOPRIGHT, DISPWIN_TYPE_USERDATA, TEXT("PID 125-98-445"), 0); m_ImageViewer.SetCellTag(0, 3, DISPWIN_ALIGN_TOPRIGHT, DISPWIN_TYPE_USERDATA, TEXT("DOB 08/02/1929"), 0); m_ImageViewer.SetCellTag(0, 5, DISPWIN_ALIGN_TOPRIGHT, DISPWIN_TYPE_USERDATA, TEXT("03/16/1999"), 0); DispCellProp.uStructSize = sizeof(DISPCELLPROPERTIES); DispCellProp.bIsFit = TRUE; DispCellProp.uMask = DCCELLPF_IMAGE_FIT; m_ImageViewer.SetCellProperties(0, &DispCellProp, 0); szText = TEXT("..\\..\\..\\Images\\MR.dcm"); if (CreateNewCell(szText) != SUCCESS) { szText = TEXT("..\\Images\\MR.dcm"); CreateNewCell(szText); } m_ImageViewer.SetCellTag(1, 1, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("MRI"), 0); m_ImageViewer.SetCellTag(1, 2, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_USERDATA, TEXT("EX. ID G-1194-24"), 0); m_ImageViewer.SetCellTag(1, 4, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_FRAME, NULL,0); m_ImageViewer.SetCellTag(1, 6, DISPWIN_ALIGN_TOPLEFT, DISPWIN_TYPE_SCALE, NULL,0); m_ImageViewer.SetCellTag(1, 2, DISPWIN_ALIGN_BOTTOMLEFT, DISPWIN_TYPE_WLCENTERWIDTH, NULL,0); m_ImageViewer.SetCellTag(1, 1, DISPWIN_ALIGN_BOTTOMLEFT, DISPWIN_TYPE_FIELDOFVIEW, NULL,0); m_ImageViewer.SetCellTag(1, 0, DISPWIN_ALIGN_BOTTOMLEFT, DISPWIN_TYPE_USERDATA, TEXT("THK 10 mm"), 0); m_ImageViewer.SetCellTag(1, 3, DISPWIN_ALIGN_BOTTOMLEFT, DISPWIN_TYPE_USERDATA, TEXT("TR 1333.33"), 0); m_ImageViewer.SetCellTag(1, 4, DISPWIN_ALIGN_BOTTOMLEFT, DISPWIN_TYPE_USERDATA, TEXT("TE 11.98"), 0); m_ImageViewer.SetCellTag(1, 6, DISPWIN_ALIGN_BOTTOMLEFT, DISPWIN_TYPE_USERDATA, TEXT("Comm longaxis - Normal"), 0); m_ImageViewer.SetCellTag(1, 0, DISPWIN_ALIGN_TOPRIGHT, DISPWIN_TYPE_USERDATA, TEXT("Community Hospital"), 0); m_ImageViewer.SetCellTag(1, 1, DISPWIN_ALIGN_TOPRIGHT, DISPWIN_TYPE_USERDATA, TEXT("Nice, Fellow"), 0); m_ImageViewer.SetCellTag(1, 2, DISPWIN_ALIGN_TOPRIGHT, DISPWIN_TYPE_USERDATA, TEXT("PID 123-45-6789"), 0); m_ImageViewer.SetCellTag(1, 3, DISPWIN_ALIGN_TOPRIGHT, DISPWIN_TYPE_USERDATA, TEXT("DOB 05/13/1936"), 0); m_ImageViewer.SetCellTag(1, 4, DISPWIN_ALIGN_TOPRIGHT, DISPWIN_TYPE_USERDATA, TEXT("Sex M"), 0); m_ImageViewer.SetCellTag(1, 5, DISPWIN_ALIGN_TOPRIGHT, DISPWIN_TYPE_USERDATA, TEXT("06/26/1995"), 0); DispCellProp.uNumCols = 2; DispCellProp.uNumRows = 2; DispCellProp.bIsFit = TRUE; DispCellProp.uMask = DCCELLPF_COLS | DCCELLPF_ROWS | DCCELLPF_IMAGE_FIT; m_ImageViewer.SetCellProperties(1, &DispCellProp, 0); } return 0; } void CImgConVwView::OnDestroy() { CFormView::OnDestroy(); m_ImageViewer.Destroy(true, 0); } void CImgConVwView::OnSize(UINT nType, int cx, int cy) { CFormView::OnSize(nType, cx, cy); ::MoveWindow(m_ImageViewer.GetWindowHandle(0), 0, 0, cx, cy, FALSE); } void CImgConVwView::OnEditFreezeCell() { CFreezeCellDlg FreezeCellDlg(&m_ImageViewer); FreezeCellDlg.DoModal(); } void CImgConVwView::OnEditToggleFreeze() { L_INT nCount = m_ImageViewer.GetCellCount(0); for (L_INT nI = 0; nI < nCount; nI++) { if (m_ImageViewer.IsCellSelected(nI, 0)) { m_ImageViewer.FreezeCell(nI, !m_ImageViewer.IsCellFrozen(nI, 0), 0); } } } void CImgConVwView::OnEditSelectAll() { m_ImageViewer.SelectCell(-1, TRUE, 0); } void CImgConVwView::OnEditSelectInv() { L_INT nCount = m_ImageViewer.GetCellCount(0); for (L_INT nI = 0; nI < nCount; nI++) { m_ImageViewer.SelectCell(nI, !m_ImageViewer.IsCellSelected(nI, 0), 0); } } void CImgConVwView::OnEditDeselectAll() { m_ImageViewer.SelectCell(-1, FALSE, 0); } void CImgConVwView::OnEditSetCellPos() { CRepositionCellDlg RepositionCellDlg(&m_ImageViewer); if(RepositionCellDlg.DoModal() == IDOK) { m_ImageViewer.RepositionCell(RepositionCellDlg.m_uCellIndex, RepositionCellDlg.m_uTargetIndex, 0); } } void CImgConVwView::OnEditRemove() { CRemoveCellDlg RemoveCellDlg(&m_ImageViewer); if(RemoveCellDlg.DoModal() == IDOK) { m_ImageViewer.RemoveCell(RemoveCellDlg.m_nCellIndex, TRUE, 0); } } void CImgConVwView::OnEditRemoveSelected() { L_INT nI = 0, nIndex = 0, nCount; nCount = m_ImageViewer.GetCellCount(0); for (nI = 0; nI < nCount; nI++) { if (m_ImageViewer.IsCellSelected(nIndex, 0)) { m_ImageViewer.RemoveCell(nIndex, TRUE, 0); } else { nIndex++; } } } void CImgConVwView::OnUpdateEditFreezeCell(CCmdUI* pCmdUI) { pCmdUI->Enable(m_ImageViewer.GetCellCount(0)); } void CImgConVwView::OnUpdateEditToggleFreeze(CCmdUI* pCmdUI) { int nIndex = 0; int nCount = m_ImageViewer.GetCellCount(0); for (nIndex = 0; nIndex < nCount; nIndex++) { if (m_ImageViewer.IsCellSelected(nIndex,0)) break; } if (nIndex == nCount) nIndex = -1; pCmdUI->Enable(nCount && (nIndex + 1)); } void CImgConVwView::OnUpdateEditSelectAll(CCmdUI* pCmdUI) { pCmdUI->Enable(m_ImageViewer.GetCellCount(0)); } void CImgConVwView::OnUpdateEditSelectInv(CCmdUI* pCmdUI) { pCmdUI->Enable(m_ImageViewer.GetCellCount(0)); } void CImgConVwView::OnUpdateEditDeselectAll(CCmdUI* pCmdUI) { int nIndex = 0; int nCount = m_ImageViewer.GetCellCount(0); for (nIndex = 0; nIndex < nCount; nIndex++) { if (m_ImageViewer.IsCellSelected(nIndex,0)) break; } if (nIndex == nCount) nIndex = -1; pCmdUI->Enable(nCount && (nIndex + 1)); } void CImgConVwView::OnUpdateEditSetCellPos(CCmdUI* pCmdUI) { pCmdUI->Enable(m_ImageViewer.GetCellCount(0)); } void CImgConVwView::OnUpdateEditRemove(CCmdUI* pCmdUI) { pCmdUI->Enable(m_ImageViewer.GetCellCount(0)); } void CImgConVwView::OnUpdateEditRemoveSelected(CCmdUI* pCmdUI) { int nIndex = 0; int nCount = m_ImageViewer.GetCellCount(0); for (nIndex = 0; nIndex < nCount; nIndex++) { if (m_ImageViewer.IsCellSelected(nIndex,0)) break; } if (nIndex == nCount) nIndex = -1; pCmdUI->Enable(nCount && (nIndex + 1)); } void CImgConVwView::OnPropertiesContainer() { CImageViewerPropDlg ImageViewerPropDlg(&m_ImageViewer); ImageViewerPropDlg.DoModal(); } void CImgConVwView::OnPropertiesCell() { CCellPropDlg CellPropDlg(&m_ImageViewer); CellPropDlg.DoModal(); } void CImgConVwView::OnUpdatePropertiesCell(CCmdUI* pCmdUI) { pCmdUI->Enable(m_ImageViewer.GetCellCount(0)); } void CImgConVwView::OnWindowLevelSet() { CActionPropDlg ActionPropDlg(&m_ImageViewer); ActionPropDlg.m_uAction = CONTAINER_ACTION_WINDOWLEVEL; memcpy(ActionPropDlg.m_arrCurrentActionButton, m_arrCurrentActionButton, sizeof(ActionPropDlg.m_arrCurrentActionButton)); memcpy(ActionPropDlg.m_arrCurrentActionFlags, m_arrCurrentActionFlags, sizeof(ActionPropDlg.m_arrCurrentActionFlags)); if(ActionPropDlg.DoModal() == IDOK) { memcpy(m_arrCurrentActionButton, ActionPropDlg.m_arrCurrentActionButton, sizeof(m_arrCurrentActionButton)); memcpy(m_arrCurrentActionFlags, ActionPropDlg.m_arrCurrentActionFlags, sizeof(m_arrCurrentActionFlags)); } } void CImgConVwView::OnWindowLevelCustom() { CWinLevelPrpoDlg WinLevelPrpoDlg(&m_ImageViewer); WinLevelPrpoDlg.DoModal(); } void CImgConVwView::OnAlphaSet() { CActionPropDlg ActionPropDlg(&m_ImageViewer); ActionPropDlg.m_uAction = CONTAINER_ACTION_ALPHA; memcpy(ActionPropDlg.m_arrCurrentActionButton, m_arrCurrentActionButton, sizeof(ActionPropDlg.m_arrCurrentActionButton)); memcpy(ActionPropDlg.m_arrCurrentActionFlags, m_arrCurrentActionFlags, sizeof(ActionPropDlg.m_arrCurrentActionFlags)); if(ActionPropDlg.DoModal() == IDOK) { memcpy(m_arrCurrentActionButton, ActionPropDlg.m_arrCurrentActionButton, sizeof(m_arrCurrentActionButton)); memcpy(m_arrCurrentActionFlags, ActionPropDlg.m_arrCurrentActionFlags, sizeof(m_arrCurrentActionFlags)); } } void CImgConVwView::OnAlphaCustom() { CAlphaPropDlg AlphaPropDlg(&m_ImageViewer); AlphaPropDlg.DoModal(); } void CImgConVwView::OnResizeSet() { CActionPropDlg ActionPropDlg(&m_ImageViewer); ActionPropDlg.m_uAction = CONTAINER_ACTION_SCALE; memcpy(ActionPropDlg.m_arrCurrentActionButton, m_arrCurrentActionButton, sizeof(ActionPropDlg.m_arrCurrentActionButton)); memcpy(ActionPropDlg.m_arrCurrentActionFlags, m_arrCurrentActionFlags, sizeof(ActionPropDlg.m_arrCurrentActionFlags)); if(ActionPropDlg.DoModal() == IDOK) { memcpy(m_arrCurrentActionButton, ActionPropDlg.m_arrCurrentActionButton, sizeof(m_arrCurrentActionButton)); memcpy(m_arrCurrentActionFlags, ActionPropDlg.m_arrCurrentActionFlags, sizeof(m_arrCurrentActionFlags)); } } void CImgConVwView::OnResizeCustom() { CScalePropDlg ScalePropDlg(&m_ImageViewer); ScalePropDlg.DoModal(); } void CImgConVwView::OnStackSet() { CActionPropDlg ActionPropDlg(&m_ImageViewer); ActionPropDlg.m_uAction = CONTAINER_ACTION_STACK; memcpy(ActionPropDlg.m_arrCurrentActionButton, m_arrCurrentActionButton, sizeof(ActionPropDlg.m_arrCurrentActionButton)); memcpy(ActionPropDlg.m_arrCurrentActionFlags, m_arrCurrentActionFlags, sizeof(ActionPropDlg.m_arrCurrentActionFlags)); if(ActionPropDlg.DoModal() == IDOK) { memcpy(m_arrCurrentActionButton, ActionPropDlg.m_arrCurrentActionButton, sizeof(m_arrCurrentActionButton)); memcpy(m_arrCurrentActionFlags, ActionPropDlg.m_arrCurrentActionFlags, sizeof(m_arrCurrentActionFlags)); } } void CImgConVwView::OnStackCustom() { CStackPropDlg StackPropDlg(&m_ImageViewer); StackPropDlg.DoModal(); } void CImgConVwView::OnMagSet() { CActionPropDlg ActionPropDlg(&m_ImageViewer); ActionPropDlg.m_uAction = CONTAINER_ACTION_MAG; memcpy(ActionPropDlg.m_arrCurrentActionButton, m_arrCurrentActionButton, sizeof(ActionPropDlg.m_arrCurrentActionButton)); memcpy(ActionPropDlg.m_arrCurrentActionFlags, m_arrCurrentActionFlags, sizeof(ActionPropDlg.m_arrCurrentActionFlags)); if(ActionPropDlg.DoModal() == IDOK) { memcpy(m_arrCurrentActionButton, ActionPropDlg.m_arrCurrentActionButton, sizeof(m_arrCurrentActionButton)); memcpy(m_arrCurrentActionFlags, ActionPropDlg.m_arrCurrentActionFlags, sizeof(m_arrCurrentActionFlags)); } } void CImgConVwView::OnMagCustom() { CMagPropDlg MagPropDlg(&m_ImageViewer); MagPropDlg.DoModal(); } void CImgConVwView::OnStatistics() { CStatisticsDlg StatisticsDlg(&m_ImageViewer); StatisticsDlg.DoModal(); } void CImgConVwView::OnOffsetSet() { CActionPropDlg ActionPropDlg(&m_ImageViewer); ActionPropDlg.m_uAction = CONTAINER_ACTION_OFFSET; memcpy(ActionPropDlg.m_arrCurrentActionButton, m_arrCurrentActionButton, sizeof(ActionPropDlg.m_arrCurrentActionButton)); memcpy(ActionPropDlg.m_arrCurrentActionFlags, m_arrCurrentActionFlags, sizeof(ActionPropDlg.m_arrCurrentActionFlags)); if(ActionPropDlg.DoModal() == IDOK) { memcpy(m_arrCurrentActionButton, ActionPropDlg.m_arrCurrentActionButton, sizeof(m_arrCurrentActionButton)); memcpy(m_arrCurrentActionFlags, ActionPropDlg.m_arrCurrentActionFlags, sizeof(m_arrCurrentActionFlags)); } } void CImgConVwView::OnOffsetCustom() { COffsetPropDlg OffsetPropDlg(&m_ImageViewer); OffsetPropDlg.DoModal(); } BOOL CImgConVwView::PreTranslateMessage(MSG* pMsg) { BOOL b = TRUE;; if(pMsg->message == WM_KEYDOWN ) { CFormView::OnKeyDown(pMsg->wParam, pMsg->lParam, b); return S_OK; } else if(pMsg->message == WM_KEYUP ) { CFormView::OnKeyUp(pMsg->wParam, pMsg->lParam, b); return S_OK; } else if(pMsg->message == WM_CHAR) { CFormView::OnChar(pMsg->wParam, pMsg->lParam, b); return S_OK; } return CFormView::PreTranslateMessage(pMsg); } BOOL CImgConVwView::CreateNewCell(CString szText) { L_INT nRet, nIndex; m_BitmapList.SetHandle(NULL, NULL,FALSE); nRet = m_BitmapList.Load(szText.GetBuffer(szText.GetLength()), 0, ORDER_BGRORGRAY, NULL, NULL); if (nRet != SUCCESS) return nRet; nIndex = m_ImageViewer.InsertCell(-1, 0); nRet = m_ImageViewer.SetCellBitmapList(nIndex, m_BitmapList.GetHandle(), TRUE, 0); return SUCCESS; }