// Present.cpp : implementation file // #include "stdafx.h" #include "netapp.h" #include "Present.h" static UINT BITMAPLIST[] = { IDB_UNSELECTED, IDB_SELECTED, }; ///////////////////////////////////////////////////////////////////////////// // CNetPresentationDlg dialog CNetPresentationDlg::CNetPresentationDlg(CWnd* pParent /*=NULL*/) : CDialog(CNetPresentationDlg::IDD, pParent) { //{{AFX_DATA_INIT(CNetPresentationDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CNetPresentationDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CNetPresentationDlg) DDX_Control(pDX, IDC_TRANSFER, m_Transfer); DDX_Control(pDX, IDC_B_ROLE, m_bRole); DDX_Control(pDX, IDC_PROVIDER, m_Provider); DDX_Control(pDX, IDC_USER, m_User); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CNetPresentationDlg, CDialog) //{{AFX_MSG_MAP(CNetPresentationDlg) ON_NOTIFY(NM_CLICK, IDC_TRANSFER, OnClickTransfer) ON_NOTIFY(NM_DBLCLK, IDC_TRANSFER, OnDblclkTransfer) ON_NOTIFY(TVN_SELCHANGED, IDC_TRANSFER, OnSelchangedTransfer) ON_BN_CLICKED(IDC_SELECT_ALL, OnSelectAll) ON_BN_CLICKED(IDC_DESELECT_ALL, OnDeselectAll) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CNetPresentationDlg message handlers BOOL CNetPresentationDlg::OnInitDialog() { CDialog::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon L_INT i; L_INT nItem; CBitmap Bitmap; CRect rcRect; L_CHAR *p; CString strText; pDICOMUID pUID; HTREEITEM hItem; m_Image.Create(12, 12, ILC_MASK, 0, sizeof(BITMAPLIST) / sizeof(BITMAPLIST[0])); for (i = 0; i < sizeof(BITMAPLIST) / sizeof(BITMAPLIST[0]); i++) { Bitmap.LoadBitmap(BITMAPLIST[i]); m_Image.Add(&Bitmap, (COLORREF)0xFFFFFF); Bitmap.DeleteObject(); } m_Transfer.SetImageList(&m_Image, TVSIL_NORMAL); m_bMouse = FALSE; nItem = m_User.AddString("Non Support"); m_User.SetItemData(nItem, PDU_ROLE_NON_SUPPORT); nItem = m_User.AddString("Support"); m_User.SetItemData(nItem, PDU_ROLE_SUPPORT); nItem = m_Provider.AddString("Non Support"); m_Provider.SetItemData(nItem, PDU_ROLE_NON_SUPPORT); nItem = m_Provider.AddString("Support"); m_Provider.SetItemData(nItem, PDU_ROLE_SUPPORT); pUID = LDicomUID::GetFirst(); while (pUID != NULL) { if ((pUID->nType == UID_TYPE_TRANSFER1) || (pUID->nType == UID_TYPE_TRANSFER2)) { hItem = m_Transfer.InsertItem(pUID->pszName, 0, 0, TVI_ROOT, TVI_LAST); m_Transfer.SetItemData(hItem, (DWORD)pUID); } pUID = LDicomUID::GetNext(pUID); } p = m_pAssociate->GetAbstract(m_nID); SetDlgItemText(IDC_CODE, p); pUID = LDicomUID::Find(p); if (pUID == NULL) { SetDlgItemText(IDC_NAME, "Unknown"); } else { SetDlgItemText(IDC_NAME, pUID->pszName); } if (m_pAssociate->IsRoleSelect(m_nID) != FALSE) { m_bRole.SetCheck(1); } for (i = 0; i < m_User.GetCount(); i++) { if ((L_UCHAR)m_User.GetItemData(i) == m_pAssociate->GetUserRole(m_nID)) { m_User.SetCurSel(i); break; } } for (i = 0; i < m_Provider.GetCount(); i++) { if ((L_UCHAR)m_Provider.GetItemData(i) == m_pAssociate->GetProviderRole(m_nID)) { m_Provider.SetCurSel(i); break; } } p = (L_CHAR *)m_pAssociate->GetExtended(m_nID); if (m_pAssociate->GetLengthExtended(m_nID) > 0) { SetDlgItemInt(IDC_EXTENDED0, p[0], FALSE); } if (m_pAssociate->GetLengthExtended(m_nID) > 1) { SetDlgItemInt(IDC_EXTENDED1, p[1], FALSE); } if (m_pAssociate->GetLengthExtended(m_nID) > 2) { SetDlgItemInt(IDC_EXTENDED2, p[2], FALSE); } if (m_pAssociate->GetLengthExtended(m_nID) > 3) { SetDlgItemInt(IDC_EXTENDED3, p[3], FALSE); } if (m_pAssociate->GetLengthExtended(m_nID) > 4) { SetDlgItemInt(IDC_EXTENDED4, p[4], FALSE); } if (m_pAssociate->GetLengthExtended(m_nID) > 5) { SetDlgItemInt(IDC_EXTENDED5, p[5], FALSE); } for (i = 0; i < m_pAssociate->GetTransferCount(m_nID); i++) { p = m_pAssociate->GetTransfer(m_nID, i); hItem = m_Transfer.GetFirstVisibleItem(); if (hItem != NULL) { while (m_Transfer.GetPrevSiblingItem(hItem) != NULL) { hItem = m_Transfer.GetPrevSiblingItem(hItem); } while (hItem != NULL) { if ((pDICOMUID)m_Transfer.GetItemData(hItem) == LDicomUID::Find(p)) { m_Transfer.SetItemImage(hItem, 1, 1); break; } hItem = m_Transfer.GetNextSiblingItem(hItem); } } } m_Transfer.RedrawWindow(); m_Transfer.SelectItem(m_Transfer.GetFirstVisibleItem()); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CNetPresentationDlg::OnOK() { CString strName; CString strText; pDICOMUID pUID; HTREEITEM hItem; L_INT nImage1; L_INT nImage2; L_UCHAR p[6]; L_INT i; m_pAssociate->SetRoleSelect(m_nID, (m_bRole.GetCheck() == 0) ? FALSE : TRUE, (L_UCHAR)m_User.GetItemData(m_User.GetCurSel()), (L_UCHAR)m_Provider.GetItemData(m_Provider.GetCurSel())); i = 0; GetDlgItemText(IDC_EXTENDED0, strText); if (strText != "") { i = 1; } GetDlgItemText(IDC_EXTENDED1, strText); if (strText != "") { i = 2; } GetDlgItemText(IDC_EXTENDED2, strText); if (strText != "") { i = 3; } GetDlgItemText(IDC_EXTENDED3, strText); if (strText != "") { i = 4; } GetDlgItemText(IDC_EXTENDED4, strText); if (strText != "") { i = 5; } GetDlgItemText(IDC_EXTENDED5, strText); if (strText != "") { i = 6; } p[0] = (L_UCHAR)GetDlgItemInt(IDC_EXTENDED0, NULL, FALSE); p[1] = (L_UCHAR)GetDlgItemInt(IDC_EXTENDED1, NULL, FALSE); p[2] = (L_UCHAR)GetDlgItemInt(IDC_EXTENDED2, NULL, FALSE); p[3] = (L_UCHAR)GetDlgItemInt(IDC_EXTENDED3, NULL, FALSE); p[4] = (L_UCHAR)GetDlgItemInt(IDC_EXTENDED4, NULL, FALSE); p[5] = (L_UCHAR)GetDlgItemInt(IDC_EXTENDED5, NULL, FALSE); m_pAssociate->SetExtended(m_nID, p, i); while (m_pAssociate->GetTransferCount(m_nID) != 0) { m_pAssociate->DelTransfer(m_nID, 0); } hItem = m_Transfer.GetFirstVisibleItem(); if (hItem == NULL) { return; } while (m_Transfer.GetPrevSiblingItem(hItem) != NULL) { hItem = m_Transfer.GetPrevSiblingItem(hItem); } while (hItem != NULL) { m_Transfer.GetItemImage(hItem, nImage1, nImage2); if (nImage1 != 0) { pUID = (pDICOMUID)m_Transfer.GetItemData(hItem); m_pAssociate->AddTransfer(m_nID, pUID->pszCode); } hItem = m_Transfer.GetNextSiblingItem(hItem); } CDialog::OnOK(); } void CNetPresentationDlg::OnSelchangedTransfer(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; L_INT nImage1; L_INT nImage2; if (m_bMouse != FALSE) { m_Transfer.GetItemImage(pNMTreeView->itemOld.hItem, nImage1, nImage2); if (nImage1 == 0) { m_Transfer.SetItemImage(pNMTreeView->itemOld.hItem, 1, 1); } else { m_Transfer.SetItemImage(pNMTreeView->itemOld.hItem, 0, 0); } m_bMouse = FALSE; } } void CNetPresentationDlg::OnClickTransfer(NMHDR* pNMHDR, LRESULT* pResult) { HTREEITEM hItem; L_INT nImage1; L_INT nImage2; if (pNMHDR->idFrom == IDC_TRANSFER) { hItem = m_Transfer.GetSelectedItem(); if (hItem != NULL) { m_Transfer.GetItemImage(hItem, nImage1, nImage2); if (nImage1 == 0) { m_Transfer.SetItemImage(hItem, 1, 1); } else { m_Transfer.SetItemImage(hItem, 0, 0); } m_bMouse = TRUE; } } *pResult = 0; } void CNetPresentationDlg::OnDblclkTransfer(NMHDR* pNMHDR, LRESULT* pResult) { HTREEITEM hItem; L_INT nImage1; L_INT nImage2; if (pNMHDR->idFrom == IDC_TRANSFER) { hItem = m_Transfer.GetSelectedItem(); if (hItem != NULL) { m_Transfer.GetItemImage(hItem, nImage1, nImage2); if (nImage1 == 0) { m_Transfer.SetItemImage(hItem, 1, 1); } else { m_Transfer.SetItemImage(hItem, 0, 0); } } } *pResult = 0; } void CNetPresentationDlg::OnSelectAll() { HTREEITEM hItem; hItem = m_Transfer.GetFirstVisibleItem(); if (hItem == NULL) { return; } while (m_Transfer.GetPrevSiblingItem(hItem) != NULL) { hItem = m_Transfer.GetPrevSiblingItem(hItem); } while (hItem != NULL) { m_Transfer.SetItemImage(hItem, 1, 1); hItem = m_Transfer.GetNextSiblingItem(hItem); } } void CNetPresentationDlg::OnDeselectAll() { HTREEITEM hItem; hItem = m_Transfer.GetFirstVisibleItem(); if (hItem == NULL) { return; } while (m_Transfer.GetPrevSiblingItem(hItem) != NULL) { hItem = m_Transfer.GetPrevSiblingItem(hItem); } while (hItem != NULL) { m_Transfer.SetItemImage(hItem, 0, 0); hItem = m_Transfer.GetNextSiblingItem(hItem); } }