#include "stdafx.h" #include "DXJDDlg.h" #ifndef WM_ELGETMSG #define WM_ELGETMSG (WM_USER+0X1001) #endif IMPLEMENT_DYNAMIC(CDXJDDlg, CDialog) CDXJDDlg::CDXJDDlg(CWnd* pParent /*=NULL*/) : CDialog(CDXJDDlg::IDD, pParent) , m_dEl(1.0) { } CDXJDDlg::~CDXJDDlg() { } void CDXJDDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, m_dEl); } BEGIN_MESSAGE_MAP(CDXJDDlg, CDialog) ON_MESSAGE( WM_ACAD_KEEPFOCUS, &CDXJDDlg::onAcadKeepFocus ) ON_MESSAGE( WM_ELGETMSG,&CDXJDDlg::OnGetElMsg) END_MESSAGE_MAP() LONG_PTR CDXJDDlg::onAcadKeepFocus( UINT_PTR, LONG_PTR) { POINT pt; ::GetCursorPos(&pt); CRect rect; GetWindowRect(&rect); if(!(rect.PtInRect(pt))) { return FALSE; } return TRUE; } BOOL CDXJDDlg::OnInitDialog() { CDialog::OnInitDialog(); UpdateData(FALSE); return TRUE; } LONG_PTR CDXJDDlg::OnGetElMsg(WPARAM wp,LPARAM lp) { if (wp != NULL) { AcGePoint3d* pPt = (AcGePoint3d*)wp; pPt->z = GetCurEl(); } return 0; } double CDXJDDlg::GetCurEl() { if (::IsWindow(m_hWnd)) { UpdateData(TRUE); } return m_dEl; } void CDXJDDlg::SetCurEl(double dEl) { m_dEl = dEl; if (::IsWindow(m_hWnd)) { UpdateData(FALSE); } }