Files
envi-code/SourceCode/Code2026/ElecCmd/CQJBZDlg.cpp
T
2026-09-28 15:28:50 +08:00

128 lines
2.5 KiB
C++

#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);
}
}
}