// SaveListDlg.cpp : implementation file // #include "stdafx.h" #include "SegmentationPropPage.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSaveListDlg dialog CSaveListDlg::CSaveListDlg( CArray& arrViews, CWnd* pParent /*=NULL*/) : CDialog(CSaveListDlg::IDD, pParent), m_arrViews(arrViews) { //{{AFX_DATA_INIT(CSaveListDlg) m_nFormat = -1; //}}AFX_DATA_INIT } void CSaveListDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSaveListDlg) DDX_Control(pDX, IDC_LISTBOX, m_lstImages); DDX_Control(pDX, IDC_COMBO_FORMAT, m_cmbFormat); DDX_CBIndex(pDX, IDC_COMBO_FORMAT, m_nFormat); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CSaveListDlg, CDialog) //{{AFX_MSG_MAP(CSaveListDlg) ON_BN_CLICKED(IDC_UP, OnUp) ON_BN_CLICKED(IDC_DOWN, OnDown) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSaveListDlg message handlers BOOL CSaveListDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_cmbFormat.SetCurSel(0); m_lstImages.ResetContent(); CString str; for (L_INT i = 0; i < m_arrViews.GetSize(); i++ ) { str = m_arrViews[i]->GetDocument()->GetTitle(); m_lstImages.AddString(str.GetBuffer(str.GetLength())); m_lstImages.SetItemDataPtr( i, m_arrViews[i]); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CSaveListDlg::OnUp() { CString strTemp; void* ptrTemp; L_INT nIndex = m_lstImages.GetCurSel(); if ( nIndex==0 || nIndex==LB_ERR ) return; m_lstImages.GetText(nIndex,strTemp); ptrTemp = m_lstImages.GetItemDataPtr(nIndex); m_lstImages.DeleteString(nIndex); m_lstImages.InsertString( nIndex-1,strTemp.GetBuffer(strTemp.GetLength())); m_lstImages.SetItemDataPtr( nIndex-1, ptrTemp); m_lstImages.SetCurSel(nIndex-1); } void CSaveListDlg::OnDown() { CString strTemp; void* ptrTemp; L_INT nIndex = m_lstImages.GetCurSel(); if ( nIndex==(m_lstImages.GetCount()-1) || nIndex==LB_ERR ) return; m_lstImages.GetText(nIndex,strTemp); ptrTemp = m_lstImages.GetItemDataPtr(nIndex); m_lstImages.DeleteString(nIndex); m_lstImages.InsertString( nIndex+1,strTemp.GetBuffer(strTemp.GetLength())); m_lstImages.SetItemDataPtr( nIndex+1, ptrTemp); m_lstImages.SetCurSel(nIndex+1); } void CSaveListDlg::OnOK() { UpdateData(TRUE);//update m_nFormat m_arrViews.RemoveAll(); for (L_INT i = 0; i < m_lstImages.GetCount(); i++ ) m_arrViews.Add((CDemoView*)m_lstImages.GetItemDataPtr(i)) ; CDialog::OnOK(); }