#include "stdafx.h" #include "CCKSXDlg.h" #include "AecDbObjXDataMap.h" IMPLEMENT_DYNAMIC(CCKSXDlg, CDialog) CCKSXDlg::CCKSXDlg(CWnd* pParent /*=nullptr*/) : CDialog(IDD_CKSX_DLG, pParent) { } CCKSXDlg::~CCKSXDlg() { } void CCKSXDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, m_wndListXData); } BEGIN_MESSAGE_MAP(CCKSXDlg, CDialog) ON_MESSAGE(WM_ACAD_KEEPFOCUS, &CCKSXDlg::onAcadKeepFocus) ON_WM_SIZE() ON_WM_SIZING() END_MESSAGE_MAP() LONG_PTR CCKSXDlg::onAcadKeepFocus(UINT_PTR, LONG_PTR) { POINT pt; ::GetCursorPos(&pt); CRect rect; GetWindowRect(&rect); if (!(rect.PtInRect(pt))) { return FALSE; } return TRUE; } BOOL CCKSXDlg::OnInitDialog() { CDialog::OnInitDialog(); CBitmap bmp; if (!bmp.LoadBitmap(IDB_BITMAPPRIV)) { AfxMessageBox(_T("Can't load bitmap: %x\n"), IDB_BITMAPPRIV); ASSERT(FALSE); return FALSE; } BITMAP bmpObj; bmp.GetBitmap(&bmpObj); UINT nFlags = ILC_COLOR24 | ILC_MASK; m_imageList.Create(16, bmpObj.bmHeight, nFlags, 0, 0); m_imageList.Add(&bmp, RGB(255, 0, 0)); m_wndListXData.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_SINGLEROW); m_wndListXData.InsertColumn(0, _T("Ãû³Æ"), LVCFMT_LEFT, 120); m_wndListXData.InsertColumn(1, _T("Êý¾Ý"), LVCFMT_LEFT, 280); m_wndListXData.SetImageList(&m_imageList, LVSIL_SMALL); GetClientRect(&m_rcMain); CRect rc; GetWindowRect(rc); m_szDlgWin.cx = rc.Width(); m_szDlgWin.cy = rc.Height(); return TRUE; } void CCKSXDlg::ListXDataMap(AecDbObjXDataMap *pXDataMap) { if (pXDataMap != NULL) { m_wndListXData.DeleteAllItems(); pXDataMap->List(&m_wndListXData, 0); } } void CCKSXDlg::OnSize(UINT nType, int cx, int cy) { if (cx < m_rcMain.Width() || cy < m_rcMain.Height()) return; CDialog::OnSize(nType, cx, cy); if (nType == -1) return; CRect rc; GetClientRect(&rc); int nH = 0, nW = 0; CRect rect; if (::IsWindow(m_wndListXData.m_hWnd)) { m_wndListXData.GetWindowRect(&rect); ScreenToClient(&rect); rect.right = rc.right - 7; rect.bottom = rc.bottom - 7; m_wndListXData.MoveWindow(rect); } } void CCKSXDlg::OnSizing(UINT fwSide, LPRECT pRect) { int nWidth = pRect->right - pRect->left; int nHeight = pRect->bottom - pRect->top; if (nWidth < m_rcMain.Width()) { pRect->right = pRect->left + m_szDlgWin.cx; } if (nHeight < m_rcMain.Height()) { pRect->bottom = pRect->top + m_szDlgWin.cy; } CDialog::OnSizing(fwSide, pRect); }