?? dlgbeacon.cpp
字號(hào):
// DlgBeacon.cpp : implementation file
//
#include "stdafx.h"
#include "RADIO.h"
#include "DlgBeacon.h"
#include "APPStatic.h"
#include "BeaconManage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgBeacon dialog
CDlgBeacon::CDlgBeacon(CWnd* pParent /*=NULL*/)
: CDialog(CDlgBeacon::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgBeacon)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CDlgBeacon::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgBeacon)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgBeacon, CDialog)
//{{AFX_MSG_MAP(CDlgBeacon)
ON_WM_DRAWITEM()
ON_WM_DESTROY()
ON_BN_CLICKED(IDB_LOADCONFIG, OnLoadconfig)
ON_BN_CLICKED(IDB_SAVECONFIG, OnSaveconfig)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgBeacon message handlers
BOOL CDlgBeacon::OnInitDialog()
{
CDialog::OnInitDialog();
//創(chuàng)建TABSHEET
CRect rect;
GetClientRect(&rect);
rect.DeflateRect(6,6);
m_tab.Create(WS_CHILD|WS_VISIBLE|TCS_FIXEDWIDTH|TCS_OWNERDRAWFIXED|TCS_FOCUSNEVER ,CRect(0,0,0,0),this,IDS_SHEETBEACON);//TCS_OWNERDRAWFIXED指示Tab由父窗口畫,WM_DRAWITEM
m_tab.SetItemSize(CSize(100,22));
m_tab.AddPage("",&m_dlgBeacon1,IDD_BEACON1);
m_tab.AddPage("",&m_dlgBeacon2,IDD_BEACON2);
m_tab.MoveWindow(&rect,TRUE);
m_tab.Show();
m_tab.SetCurSel(0);
CopyFromBM2Dlg();
m_dlgBeacon1.UpdateListBox();
m_dlgBeacon2.UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgBeacon::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call default
//DRAWITEMSTRUCT *pDs=lpDrawItemStruct;
CDC *pDC=m_tab.GetDC();
int iIndex=m_tab.GetCurSel();
int iConunt=m_tab.GetRowCount();
CRect rectItem;
m_tab.GetItemRect(iIndex,&rectItem);
POINT pt;
for(int i=0;i<=iConunt;i++){
pt.x=i*rectItem.Width();
pt.y=rectItem.top;
pt.x+=20;pt.y+=5;
if(i==iIndex){
pt.x=pt.x+2;
pt.y=pt.y-3;
}
CFont *pFont=m_tab.GetFont();
LOGFONT logFont;
pFont->GetLogFont(&logFont);
lstrcpy(logFont.lfFaceName,TEXT("幼圓"));
logFont.lfHeight=13;
CFont font;
font.CreateFontIndirect(&logFont);
pDC->SelectObject(&font);
pDC->SetBkColor(::GetSysColor(COLOR_BTNFACE));
pDC->SetTextColor(RGB(10,67,24));
if(i==0){
pDC->TextOut(pt.x,pt.y,"添加信標(biāo)");
}else
{pDC->TextOut(pt.x,pt.y,"參數(shù)設(shè)置");
}
}
}
void CDlgBeacon::OnDestroy()
{
CDialog::OnDestroy();
delete(this);
}
void CDlgBeacon::OnOK()
{
// TODO: Add extra validation here
m_dlgBeacon1.UpdateData(TRUE);
m_dlgBeacon2.UpdateData(TRUE);
CopyFromDlg2BM();
CDialog::OnOK();
}
void CDlgBeacon::OnLoadconfig()
{
CString strName;
CFileDialog fileDlg(TRUE,_T("cfg"),NULL,OFN_OVERWRITEPROMPT,
_T("Beacon Config Files(*.cfg)|*.cfg|All Files (*.*)|*.*||"));
if(fileDlg.DoModal()==IDOK){
strName=fileDlg.GetPathName();
}
else{
return;
}
CFileException fileExcep;
CFile fileBeaconConfig;
fileBeaconConfig.Open(strName, CFile::modeRead,&fileExcep );
if(fileExcep.m_cause!=CFileException::none)
{ fileExcep.ReportError();
return;
}
CArchive ar( &fileBeaconConfig, CArchive::load);
UINT iSchema;
ar>>iSchema;
m_dlgBeacon1.m_tempBeaconList.Serialize(ar);
m_dlgBeacon2.Serialize(ar);
m_dlgBeacon1.UpdateListBox();
m_dlgBeacon2.UpdateData(FALSE);
}
void CDlgBeacon::OnSaveconfig()
{
CString strName;
CFileDialog fileDlg(FALSE,_T("cfg"),NULL,OFN_OVERWRITEPROMPT,
_T("Beacon Config Files(*.cfg)|*.cfg|All Files (*.*)|*.*||"));
if(fileDlg.DoModal()==IDOK){
strName=fileDlg.GetPathName();
}
else{
return;
}
CFileException fileExcep;
CFile fileBeaconConfig;
fileBeaconConfig.Open(strName, CFile::modeWrite|CFile::modeCreate,&fileExcep );
if(fileExcep.m_cause!=CFileException::none)
{ fileExcep.ReportError();
return;
}
CArchive ar( &fileBeaconConfig, CArchive::store);
ar<<SCHEMA_BEACON;
m_dlgBeacon1.m_tempBeaconList.Serialize(ar);
m_dlgBeacon2.Serialize(ar);
}
void CDlgBeacon::CopyFromBM2Dlg(){
CBeaconManage *pBe=APPStatic::GetMainView()->GetBeaconManage();
m_dlgBeacon1.m_tempBeaconList.Copy(*(pBe->GetBeaconList()));
m_dlgBeacon2.m_dMavInitErDisAir=pBe->m_dMavInitErDisAir;
m_dlgBeacon2.m_dMavInitErDisGround=pBe->m_dMavInitErDisGround;
m_dlgBeacon2.m_dMavTimeDisAir=pBe->m_dMavTimeDisAir;
m_dlgBeacon2.m_dMavTimeDisGround=pBe->m_dMavTimeDisGround;
m_dlgBeacon2.m_dMavWhiteErDisAir=pBe->m_dMavWhiteErDisAir;
m_dlgBeacon2.m_dMavWhiteErDisGround=pBe->m_dMavWhiteErDisGround;
m_dlgBeacon2.m_dBlindAir=pBe->m_dBlindAir;
m_dlgBeacon2.m_dBlindGround=pBe->m_dBlindGround;
m_dlgBeacon2.m_dMavInitErAzAir=pBe->m_dMavInitErAzAir;
m_dlgBeacon2.m_dMavInitErAzGround=pBe->m_dMavInitErAzGround;
m_dlgBeacon2.m_dMavTimeAzAir=pBe->m_dMavTimeAzAir;
m_dlgBeacon2.m_dMavTimeAzGround=pBe->m_dMavTimeAzGround;
m_dlgBeacon2.m_MavWhiteErAzAir=pBe->m_MavWhiteErAzAir;
m_dlgBeacon2.m_MavWhiteErAzGround=pBe->m_MavWhiteErAzGround;
m_dlgBeacon2.m_dDistAir=pBe->m_dDistAir;
m_dlgBeacon2.m_dDistGround=pBe->m_dDistGround;
m_dlgBeacon2.m_dFreq=pBe->m_dFreq;
}
void CDlgBeacon::CopyFromDlg2BM(){
CBeaconManage *pBe=APPStatic::GetMainView()->GetBeaconManage();
pBe->GetBeaconList()->Copy(m_dlgBeacon1.m_tempBeaconList);
pBe->m_dMavInitErDisAir=m_dlgBeacon2.m_dMavInitErDisAir;
pBe->m_dMavInitErDisGround=m_dlgBeacon2.m_dMavInitErDisGround;
pBe->m_dMavTimeDisAir=m_dlgBeacon2.m_dMavTimeDisAir;
pBe->m_dMavTimeDisGround=m_dlgBeacon2.m_dMavTimeDisGround;
pBe->m_dMavWhiteErDisAir=m_dlgBeacon2.m_dMavWhiteErDisAir;
pBe->m_dMavWhiteErDisGround=m_dlgBeacon2.m_dMavWhiteErDisGround;
pBe->m_dBlindAir=m_dlgBeacon2.m_dBlindAir;
pBe->m_dBlindGround=m_dlgBeacon2.m_dBlindGround;
pBe->m_dMavInitErAzAir=m_dlgBeacon2.m_dMavInitErAzAir;
pBe->m_dMavInitErAzGround=m_dlgBeacon2.m_dMavInitErAzGround;
pBe->m_dMavTimeAzAir=m_dlgBeacon2.m_dMavTimeAzAir;
pBe->m_dMavTimeAzGround=m_dlgBeacon2.m_dMavTimeAzGround;
pBe->m_MavWhiteErAzAir=m_dlgBeacon2.m_MavWhiteErAzAir;
pBe->m_MavWhiteErAzGround=m_dlgBeacon2.m_MavWhiteErAzGround;
pBe->m_dDistAir=m_dlgBeacon2.m_dDistAir;
pBe->m_dDistGround=m_dlgBeacon2.m_dDistGround;
pBe->m_dFreq=m_dlgBeacon2.m_dFreq;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -