#include "stdafx.h" #include "CQJBZDlg.h" IMPLEMENT_DYNAMIC(CQJBZDlg, CDialog) CQJBZDlg::CQJBZDlg(CWnd* pParent /*=NULL*/) : CDialog(IDD_QJBZ_DLG, pParent) { } CQJBZDlg::~CQJBZDlg() { } void CQJBZDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, m_wndList); } BEGIN_MESSAGE_MAP(CQJBZDlg, CDialog) ON_MESSAGE(WM_ACAD_KEEPFOCUS, &CQJBZDlg::onAcadKeepFocus) ON_BN_CLICKED(IDC_BUTTON1, &CQJBZDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON3, &CQJBZDlg::OnBnClickedButton3) END_MESSAGE_MAP() LONG_PTR CQJBZDlg::onAcadKeepFocus(UINT_PTR, LONG_PTR) { POINT pt; ::GetCursorPos(&pt); CRect rect; GetWindowRect(&rect); if (!(rect.PtInRect(pt))) { return FALSE; } return TRUE; } BOOL CQJBZDlg::OnInitDialog() { CDialog::OnInitDialog(); m_ImageList.Create(IDB_BITMAPI, 1, 1, ILC_COLOR16); m_wndList.SetImageList(&m_ImageList, LVSIL_SMALL); m_wndList.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); m_wndList.InsertColumn(0, _T("序号"), LVCFMT_LEFT, 120); m_wndList.InsertColumn(1, _T("标注文本"), LVCFMT_LEFT, 200); m_wndList.SetColumnItemData(1, NULL, ET_Edit); return TRUE; } void CQJBZDlg::AppendDimTxt(LPCTSTR pszDimTxt) { if (::IsWindow(m_hWnd)) { int nItem = m_wndList.GetItemCount(); CString sNo; sNo.Format(_T("%d"),nItem+1); m_wndList.InsertItem(nItem,sNo,0); m_wndList.SetItemText(nItem, 1, pszDimTxt); } } void CQJBZDlg::RemoveAllDimTxt() { if (::IsWindow(m_hWnd)) { m_wndList.DeleteAllItems(); } } void CQJBZDlg::GetDimTxts(CStringArray& arDimTxt) const { if (::IsWindow(m_hWnd)) { for (int i = 0;i < m_wndList.GetItemCount();i++) { arDimTxt.Add(m_wndList.GetItemText(i, 1)); } } } void CQJBZDlg::OnBnClickedButton1() { int nCount = m_wndList.GetItemCount(); if (nCount == 0) { AfxMessageBox(_T("没有桥架标注文字参照!无法增加一行!")); return; } CString sDim = m_wndList.GetItemText(nCount-1, 1); CString sNo; sNo.Format(_T("%d"), nCount + 1); m_wndList.InsertItem(nCount, sNo, 0); m_wndList.SetItemText(nCount, 1, sDim); m_wndList.SetItemState(nCount, LVIS_SELECTED, LVIS_SELECTED); } void CQJBZDlg::OnBnClickedButton3() { POSITION ps = m_wndList.GetFirstSelectedItemPosition(); if (ps != NULL) { int nItem = m_wndList.GetNextSelectedItem(ps); if (nItem != -1) { m_wndList.DeleteItem(nItem); } //重新排序 for (int i = 0; i < m_wndList.GetItemCount(); i++) { CString sNo; sNo.Format(_T("%d"), i + 1); m_wndList.SetItemText(i, 0, sNo); } } }