You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

321 lines
7.9 KiB
C++

// DCOverrollDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "DCOverrollDlg.h"
#include "afxdialogex.h"
// DCOverrollDlg 对话框
IMPLEMENT_DYNAMIC(DCOverrollDlg, CDialogEx)
DCOverrollDlg::DCOverrollDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(DCOverrollDlg::IDD, pParent)
{
//m_bkBrush.CreateSolidBrush(BKGCLR);
m_CurSelect = 99;
}
DCOverrollDlg::~DCOverrollDlg()
{
/*关闭定时器*/
DelateTimer();
}
//定时器回调函数
void FAR PASCAL m_DCOverrollTimer(WORD IDEvent, WORD uReserved, DWORD dwUser, DWORD dwReserved1, DWORD dwReserve2)
{
DCOverrollDlg *m_pView = (DCOverrollDlg *)dwUser;
m_pView->DC0verrollStep(dwUser);
}
void DCOverrollDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
//DDX_Control(pDX, IDC_STATIC_DC, m_DCFrameInfoTab);
DDX_Control(pDX, IDC_STATIC_DC, m_ShowPosition);
}
BEGIN_MESSAGE_MAP(DCOverrollDlg, CDialogEx)
//ON_COMMAND(ID_13Ins, &DCOverrollDlg::OnUpdate13Ins)
//ON_UPDATE_COMMAND_UI(ID_WHTJ, &DCOverrollDlg::OnUpdateWHTJ)
ON_WM_CTLCOLOR()
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BTN_SHOW, &DCOverrollDlg::OnBnClickedBtnShow)
ON_CBN_SELCHANGE(IDC_DC_CHOSET, &DCOverrollDlg::OnCbnSelchangeDcChoset)
ON_BN_CLICKED(IDC_RADIO1, &DCOverrollDlg::OnBnClickedRadio1)
ON_BN_CLICKED(IDC_RADIO2, &DCOverrollDlg::OnBnClickedRadio2)
ON_MESSAGE(WM_PROCESS_DC_CMD, ProcessDCCMD)
END_MESSAGE_MAP()
HBRUSH DCOverrollDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何特性
/*
if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetBkColor(RGB(0,0,0));
pDC->SetTextColor(TXTCLR);
pDC->SetBkMode(TRANSPARENT);
}*/
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return m_bkBrush;
}
// DCOverrollDlg 消息处理程序
BOOL DCOverrollDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
DlgDCOverroll_Hwnd = GetSafeHwnd();//获得自身的窗口句柄
//CRect m_crect;
//GetDlgItem(IDC_STATIC_DC_PUBLCI)->GetWindowRect(m_crect);
//ScreenToClient(&m_crect);
//this->MoveWindow(m_crect.left, m_crect.top, m_crect.Width()*1.05, m_crect.Height()*12);
this->CenterWindow();
///*根据屏幕分辨率最大化显示*/
//int cx = 0.65*GetSystemMetrics(SM_CXMAXIMIZED);
//int cy = 0.5*GetSystemMetrics(SM_CYMAXIMIZED);
//CRect rcRect(0,0,cx,cy);
//this->MoveWindow(rcRect,true);
//this->CenterWindow();
//CSize tabSize(180,25);
//m_DCFrameInfoTab.SetItemSize(tabSize);
//m_DCFrameInfoTab.SetNormalColor(RGB(230,230,230));
//m_DCFrameInfoTab.SetSelectedColor(0x32CD32);
CreateAllDlg();
((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->InsertString(0, "13所吊舱控制");
((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->InsertString(1, "天进吊舱控制");
((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->SetCurSel(0);
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(true);
/*启动定时器*/
//先关闭
DelateTimer();
//再启动
if((DCDC0verrollTimerId = timeSetEvent(20, 10, (LPTIMECALLBACK)m_DCOverrollTimer, (DWORD)this, TIME_PERIODIC)) == 0)
{
MessageBox( "通用控制吊舱定时器启动错误!" );
}
return 0;
}
BOOL DCOverrollDlg::CreateAllDlg()
{
CRect m_crect;
GetDlgItem(IDC_STATIC_DC_PUBLCI)->GetWindowRect(m_crect);//获得IDC_STATIC_DC_PUBLCI的位置
ScreenToClient(&m_crect);
CRect m_crect2;
GetDlgItem(IDC_STATIC_DC)->GetWindowRect(m_crect2);//获得IDC_STATIC_DC的位置
ScreenToClient(&m_crect2);
//吊舱新的控制方式 默认显示
if(!m_13InstituteDCNewDlg.GetSafeHwnd())
{
m_13InstituteDCNewDlg.Create(IDD_DIALOG_DC_13INSTITUTE_NEW,this);
}
m_13InstituteDCNewDlg.MoveWindow(m_crect2);//将IDD_DIALOG_DC_13INSTITUTE_NEW移到IDC_STATIC_DC_PUBLCI所在的位置
m_13InstituteDCNewDlg.ShowWindow(SW_SHOW);
if(!m_WHTJDCNewDlg.GetSafeHwnd())
{
m_WHTJDCNewDlg.Create(IDD_DIALOG_DC_WuHanTJ_NEW,this);
}
m_WHTJDCNewDlg.MoveWindow(m_crect2);//将IDD_DIALOG_DC_13INSTITUTE_NEW移到IDC_STATIC_DC_PUBLCI所在的位置
m_WHTJDCNewDlg.ShowWindow(SW_HIDE);
CRect m_RectShow; //显示部分的面积区域
GetWindowRect(&m_RectLarge);
GetDlgItem(IDC_STATIC_DC_PUBLCI)->GetWindowRect(&m_RectShow);
m_RectSmall.left = m_RectLarge.left;
m_RectSmall.top = m_RectLarge.top;
m_RectSmall.right = m_RectShow.right;
m_RectSmall.bottom = m_RectLarge.bottom;
SetWindowPos(NULL,0,0,m_RectSmall.Width(),m_RectSmall.Height(),SWP_NOMOVE|SWP_NOZORDER);
return true;
}
//定时器处理函数
void DCOverrollDlg::DC0verrollStep(DWORD)
{
}
void DCOverrollDlg::DelateTimer()
{
if(DCDC0verrollTimerId!=0)
{
timeKillEvent(DCDC0verrollTimerId);
DCDC0verrollTimerId = 0;
}
}
void DCOverrollDlg::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
/*关闭定时器*/
DelateTimer();
m_CurSelect = 99;
CDialogEx::OnClose();
}
void DCOverrollDlg::OnBnClickedBtnShow()
{
// TODO: 在此添加控件通知处理程序代码
CString str;
GetDlgItemText(IDC_BTN_SHOW, str);
if(str == _T("扩展显示>>"))
{
SetDlgItemText(IDC_BTN_SHOW, _T("隐藏显示<<"));
SetWindowPos(NULL, 0, 0, m_RectLarge.Width(), m_RectLarge.Height(),SWP_NOMOVE|SWP_NOZORDER);
}
else if(str == _T("隐藏显示<<"))
{
SetDlgItemText(IDC_BTN_SHOW, _T("扩展显示>>"));
SetWindowPos(NULL, 0, 0, m_RectSmall.Width(), m_RectSmall.Height(),SWP_NOMOVE|SWP_NOZORDER);
}
}
//LRESULT DCOverrollDlg::ProcessDCCMD(WPARAM wParam, LPARAM lParam)
//{
// if(!gCurGCSCtrlFlag)
// {
// return 0;
// }
// if(m_CurSelect == 1)
// {
// m_WHTJDCNewDlg.UpdateTJDCAction((int)lParam);
// }
// else if(m_CurSelect == 0 || m_CurSelect == 99)//默认控制13所吊舱
// {
// m_13InstituteDCNewDlg.UpdateDC13Action((int)lParam);
// }
//
// return 0;
//}
void DCOverrollDlg::OnCbnSelchangeDcChoset()
{
// TODO: 在此添加控件通知处理程序代码
// TODO: 在此添加控件通知处理程序代码
//int a = m_DCFrameInfoTab.GetCurSel();
UpdateData( true );
int iCount =((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->GetCurSel();
if(m_CurSelect != iCount)
{
m_CurSelect = iCount;
if(m_CurSelect == 0)
{
/*
//吊舱旧的控制方式
//删除天进吊舱对话框
m_WuHanTJDCDlg.ShowWindow(SW_HIDE);
m_WuHanTJDCDlg.DelateTimer();
m_WuHanTJDCDlg.m_DCCommonDateProcess.DelateTimer();
//显示13所吊舱控制对话框
m_13InstituteDCDlg.ShowWindow(SW_SHOW);
m_13InstituteDCDlg.InitializeTimer();
*/
//吊舱新的控制方式
//显示13所吊舱控制对话框
m_13InstituteDCNewDlg.ShowWindow(SW_SHOW);
//隐藏天进吊舱控制对话框
m_WHTJDCNewDlg.ShowWindow(SW_HIDE);
Sleep(120);
}
if(m_CurSelect == 1)
{
/*
//吊舱旧的控制方式
//删除13所吊舱对话框
m_13InstituteDCDlg.ShowWindow(SW_HIDE);
m_13InstituteDCDlg.DelateTimer();
m_13InstituteDCDlg.m_DCCommonDateProcess.DelateTimer();
//显示天进吊舱控制对话框
m_WuHanTJDCDlg.ShowWindow(SW_SHOW);
m_WuHanTJDCDlg.InitializeTimer();
*/
//吊舱新的控制方式
//隐藏13所吊舱控制对话框
m_13InstituteDCNewDlg.ShowWindow(SW_HIDE);
//显示天进吊舱控制对话框
m_WHTJDCNewDlg.ShowWindow(SW_SHOW);
Sleep(120);
}
if(m_CurSelect == 99)//默认显示13所吊舱
{
/*
//吊舱旧的控制方式
m_WuHanTJDCDlg.DelateTimer();
m_WuHanTJDCDlg.ShowWindow(SW_HIDE);
m_WuHanTJDCDlg.m_DCCommonDateProcess.DelateTimer();
m_13InstituteDCDlg.DelateTimer();
m_13InstituteDCDlg.ShowWindow(SW_HIDE);
m_13InstituteDCDlg.m_DCCommonDateProcess.DelateTimer();
*/
//吊舱新的控制方式
//隐藏13所吊舱控制对话框
m_13InstituteDCNewDlg.ShowWindow(SW_HIDE);
//隐藏天进吊舱控制对话框
m_WHTJDCNewDlg.ShowWindow(SW_HIDE);
Sleep(120);
}
}
}
void DCOverrollDlg::OnBnClickedRadio1()
{
m_CurSelect = 0;
//显示13所吊舱控制对话框
m_13InstituteDCNewDlg.ShowWindow(SW_SHOW);
//隐藏天进吊舱控制对话框
m_WHTJDCNewDlg.ShowWindow(SW_HIDE);
Sleep(120);
}
void DCOverrollDlg::OnBnClickedRadio2()
{
m_CurSelect = 1;
//隐藏13所吊舱控制对话框
m_13InstituteDCNewDlg.ShowWindow(SW_HIDE);
//显示天进吊舱控制对话框
m_WHTJDCNewDlg.ShowWindow(SW_SHOW);
Sleep(120);
}
LRESULT DCOverrollDlg::ProcessDCCMD(WPARAM wParam, LPARAM lParam)
{
if(m_CurSelect == 1)
{
m_WHTJDCNewDlg.UpdateTJDCAction((int)lParam);
}
//else if(m_CurSelect == 0 || m_CurSelect == 99)//默认控制13所吊舱
//{
// m_13InstituteDCNewDlg.UpdateDC13Action((int)lParam);
//}
return 0;
}