|
|
// 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;
|
|
|
}
|
|
|
}
|