// LonLatDlg.cpp : 实现文件 // #include "stdafx.h" #include "LonLatDlg.h" //#include "afxdialogex.h" #include "Globe.h" #include "afxwin.h" // CLonLatDlg 对话框 IMPLEMENT_DYNAMIC(CLonLatDlg, CDialog) CLonLatDlg::CLonLatDlg(CWnd* pParent /*=NULL*/) : CDialog(CLonLatDlg::IDD, pParent) { m_lon = 0.0; m_lat = 0.0; } CLonLatDlg::~CLonLatDlg() { } void CLonLatDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_LON, m_lon); DDX_Text(pDX, IDC_EDIT_LAT, m_lat); } BEGIN_MESSAGE_MAP(CLonLatDlg, CDialog) ON_BN_CLICKED(IDC_CONFIRM_BTN, &CLonLatDlg::OnBnClickedConfirmBtn) ON_BN_CLICKED(IDC_CHECK1, &CLonLatDlg::OnBnClickedCheck1) END_MESSAGE_MAP() // CLonLatDlg 消息处理程序 //获取是否手动输入状态 bool CLonLatDlg::GetAutoEditStatus() { return m_isMouseMove; } //输入经度、纬度,并显示出来 //输入:经度lon,纬度lat void CLonLatDlg::SetLonLatInfo(const double lon, const double lat) { m_lon = lon; m_lat = lat; UpdateData(FALSE); //UpdateData(TRUE); } void CLonLatDlg::OnCancel() { //发送主程序,标识已经关闭 if (g_mapHwnd != NULL) { ::PostMessage(g_mapHwnd, WM_CLOSE_LONLAT_DIALOG, 0, 0); } CDialog::OnCancel(); } //功能:移动对话框到给定的显示区域 void CLonLatDlg::MoveToGivenArea(const CRect rcArea) { m_rcDlgArea = rcArea; m_rcDlgArea.top += 20; } BOOL CLonLatDlg::OnInitDialog() { CDialog::OnInitDialog(); SetWindowPos( &CWnd::wndTop, m_rcDlgArea.left, m_rcDlgArea.top, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE | SWP_HIDEWINDOW ); m_CheckBox.SubclassDlgItem(IDC_CHECK1, this); m_CheckBox.SetCheck(BST_UNCHECKED); // 设置默认未选中状态 m_isMouseMove = true; return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } void CLonLatDlg::OnBnClickedConfirmBtn() { // TODO: 在此添加控件通知处理程序代码 CString str_lon; CString str_lat; GetDlgItemText(IDC_EDIT_LON, str_lon); GetDlgItemText(IDC_EDIT_LAT, str_lat); double lon = _tstof(str_lon); double lat = _tstof(str_lat); //::SendMessage(g_mapHwnd, WM_SEND_MAPLOCATION, WPARAM(_tstof(lon)*1000000), LPARAM(_tstof(lat)*1000000)); ::SendMessage(g_mapHwnd, WM_SEND_MAPLOCATION, (WPARAM)&lon, (LPARAM)&lat); } void CLonLatDlg::OnBnClickedCheck1() { // TODO: 在此添加控件通知处理程序代码 if (m_CheckBox.GetCheck() == BST_CHECKED) { // 复选框被选中 m_isMouseMove = false; } else { // 复选框未选中 m_isMouseMove = true; } }