#include "stdafx.h" #include "CWTXXDlg.h" IMPLEMENT_DYNAMIC(CWTXXDlg, CDialog) CWTXXDlg::CWTXXDlg(CWnd* pParent /*=NULL*/) : CDialog(IDD_WTXX_DLG, pParent) { m_nElbowStyle = 0; m_vtMaj.set(0, 0, 0); m_vtMin.set(0, 0, 0); } CWTXXDlg::~CWTXXDlg() { } void CWTXXDlg::SetMajDir(AcGeVector3d &vtMaj) { m_vtMaj = vtMaj; } void CWTXXDlg::SetMinDir(AcGeVector3d &vtMin) { m_vtMin = vtMin; } void CWTXXDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST2, m_wndList); } BEGIN_MESSAGE_MAP(CWTXXDlg, CDialog) ON_BN_CLICKED(IDOK, &CWTXXDlg::OnBnClickedOk) END_MESSAGE_MAP() BOOL CWTXXDlg::OnInitDialog() { CDialog::OnInitDialog(); CBitmap bmp; if (!bmp.LoadBitmap(IDB_BITMAP6)) { AfxMessageBox(_T("Can't load bitmap IDB_BITMAPPRIV")); ASSERT(FALSE); return FALSE; } BITMAP bmpObj; bmp.GetBitmap(&bmpObj); UINT nFlags = ILC_COLOR24 | ILC_MASK; m_imageList.Create(96, bmpObj.bmHeight, nFlags, 0, 0); m_imageList.Add(&bmp, RGB(255, 255, 255)); m_wndList.SetImageList(&m_imageList, TVSIL_NORMAL); m_wndList.InsertItem(0, _T("垂直上弯"), 0); m_wndList.InsertItem(1, _T("垂直下弯"), 1); if (m_vtMaj.isCodirectionalTo(-AcGeVector3d::kZAxis) || m_vtMin.isCodirectionalTo(-AcGeVector3d::kZAxis)) { m_wndList.InsertItem(2, _T("垂直左上弯"), 2); m_wndList.InsertItem(3, _T("垂直右上弯"), 3); } else if( m_vtMaj.isCodirectionalTo(AcGeVector3d::kZAxis) || m_vtMin.isCodirectionalTo(AcGeVector3d::kZAxis)) { m_wndList.InsertItem(2, _T("垂直左下弯"), 4); m_wndList.InsertItem(3, _T("垂直右下弯"), 5); } m_wndList.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED); return TRUE; } void CWTXXDlg::OnBnClickedOk() { POSITION ps = m_wndList.GetFirstSelectedItemPosition(); if (ps != NULL) { int nItem = m_wndList.GetNextSelectedItem(ps); LVITEM rItem; ZeroMemory(&rItem, sizeof(LVITEM)); rItem.mask = LVIF_IMAGE | LVIF_STATE; rItem.iItem = nItem; rItem.stateMask = LVIS_SELECTED; m_wndList.GetItem(&rItem); m_nElbowStyle = rItem.iImage; } else { return; } CDialog::OnOK(); }