📄 comrefer.cpp
字号:
// ComRefer.cpp : 实现文件
//
#include "stdafx.h"
#include "buscontrol.h"
#include "ComRefer.h"
#include ".\comrefer.h"
// CComRefer 对话框
IMPLEMENT_DYNAMIC(CComRefer, CDialog)
CComRefer::CComRefer(CWnd* pParent /*=NULL*/)
: CDialog(CComRefer::IDD, pParent)
, flag(0)
, m_s1(0)
, m_s2(0)
, m_s3(0)
, m_s4(0)
, m_s5(0)
, m_s6(0)
, m_s7(0)
, m_s8(0)
, m_s9(0)
, m_s10(0)
, m_x1(0)
, m_x2(0)
, m_x3(0)
, m_x4(0)
, m_x5(0)
, m_x6(0)
, m_x7(0)
, m_x8(0)
, m_x9(0)
, m_x10(0)
, m_77(0)
, m_105(0)
, m_light77(0)
, m_light105(0)
, dataofflag(0)
{
myFont.CreateFont(
50,
15,
0,
0,
FW_BOLD,
TRUE,
FALSE,
FALSE,
GB2312_CHARSET,
OUT_STROKE_PRECIS,
CLIP_STROKE_PRECIS,
DRAFT_QUALITY,
VARIABLE_PITCH|FF_MODERN,
"楷体_GB2312"
);
}
CComRefer::~CComRefer()
{
}
void CComRefer::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CComRefer, CDialog)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
ON_WM_TIMER()
ON_WM_CREATE()
ON_MESSAGE(WM_CHDATA,OnChData)
ON_WM_PAINT()
ON_WM_CTLCOLOR()
END_MESSAGE_MAP()
// CComRefer 消息处理程序
int CComRefer::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
//GetDlgItem(IDC_STATIC00)->SetFont(&myFont,TRUE);
SetTimer(1,2000,NULL);
m_bkBrush.CreateSolidBrush(RGB(0,200,255));
m_bkBrush1.CreateSolidBrush(RGB(0,200,255));
m_bkBrush2.CreateSolidBrush(RGB(0,200,255));// TODO: 在此添加您专用的创建代码
return 0;
}
HBRUSH CComRefer::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor==CTLCOLOR_DLG)
return m_bkBrush;
if(nCtlColor== CTLCOLOR_STATIC)
{
if (pWnd->GetDlgCtrlID() == IDC_STATIC00)
{
pDC->SetTextColor( RGB(255,0,0) );
pDC->SetBkColor( RGB(0,200,255) ); // text
return m_bkBrush1;
}
else
{
pDC->SetTextColor( RGB(0,0,0) );
pDC->SetBkColor( RGB(0,200,255) ); // text
return m_bkBrush2;
}
}
else
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);// TODO: 在此更改 DC 的任何属性
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
void CComRefer::OnTimer(UINT nIDEvent)
{
if(nIDEvent==1)
{
//ComReferFunction();
LightTimeControl();
//ShowLight();
//Invalidate();
}
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDialog::OnTimer(nIDEvent);
}
void CComRefer::LightTimeControl(void)
{
if(m_light105>0)
m_light105=m_light105-1;
else
if(m_light105==0)
{
m_105=0X8000;
ShowLight();
dataofflag=0;
Invalidate();
}
if(m_light77>0)
{
m_light77=m_light77-1;
}
else
if(m_light77==0)
{
m_77=0;
ShowLight();
Invalidate();
}
}
LRESULT CComRefer::OnChData(WPARAM wParam,LPARAM lParam)
{
int numofbus;
numofbus=(int)lParam;
if(numofbus&0X8000)
{
if(m_light105==0)
{
m_105=(int)lParam;
m_light105=5;
}
}
else
{
if(m_light77==0)
{
m_77=(int)lParam;
m_light77=5;
}
}
ShowLight();
Invalidate();
return 0;
}
void CComRefer::ShowLight(void)
{
if(m_77&0X1)
m_s10=1;
else
m_s10=0;
if(m_77&0X2)
m_s8=1;
else
m_s8=0;
if(m_77&0X4)
m_s6=1;
else
m_s6=0;
if(m_77&0X8)
m_s4=1;
else
m_s4=0;
if(m_77&0X10)
m_s2=1;
else
m_s2=0;
if(m_77&0X20)
m_s1=1;
else
m_s1=0;
if(m_105&0X1)
m_x10=1;
else
m_x10=0;
if(m_105&0X2)
m_x8=1;
else
m_x8=0;
if(m_105&0X4)
m_x6=1;
else
m_x6=0;
if(m_105&0X8)
m_x4=1;
else
m_x4=0;
if(m_105&0X10)
m_x2=1;
else
m_x2=0;
if(m_105&0X20)
m_x1=1;
else
m_x1=0;
}
void CComRefer::ComReferFunction(void)
{
CString lu77[11]={"77路","江南大学","锡铁巷","小姆浜村","周新西6","上风诸","美湖村","水常路","南桥村","金城湾路","芦庄五区"};
CString lu105[11]={"105路","江南大学","锡铁巷","小姆浜村","青祁路","迎蠡二路","东绛实验中学","锡南路","立信路","东绛","大桥村委"};
if(flag==0)
{
CWnd* pWnd=GetDlgItem(IDC_STATIC11);
pWnd->SetWindowText(lu77[0]);
pWnd=GetDlgItem(IDC_STATIC12);
pWnd->SetWindowText(lu77[1]);
pWnd=GetDlgItem(IDC_STATIC13);
pWnd->SetWindowText(lu77[2]);
pWnd=GetDlgItem(IDC_STATIC14);
pWnd->SetWindowText(lu77[3]);
pWnd=GetDlgItem(IDC_STATIC15);
pWnd->SetWindowText(lu77[4]);
pWnd=GetDlgItem(IDC_STATIC16);
pWnd->SetWindowText(lu77[5]);
pWnd=GetDlgItem(IDC_STATIC17);
pWnd->SetWindowText(lu77[6]);
pWnd=GetDlgItem(IDC_STATIC18);
pWnd->SetWindowText(lu77[7]);
pWnd=GetDlgItem(IDC_STATIC19);
pWnd->SetWindowText(lu77[8]);
pWnd=GetDlgItem(IDC_STATIC110);
pWnd->SetWindowText(lu77[9]);
pWnd=GetDlgItem(IDC_STATIC111);
pWnd->SetWindowText(lu77[10]);
pWnd=GetDlgItem(IDC_STATIC21);
pWnd->SetWindowText(lu105[0]);
pWnd=GetDlgItem(IDC_STATIC22);
pWnd->SetWindowText(lu105[1]);
pWnd=GetDlgItem(IDC_STATIC23);
pWnd->SetWindowText(lu105[2]);
pWnd=GetDlgItem(IDC_STATIC24);
pWnd->SetWindowText(lu105[3]);
pWnd=GetDlgItem(IDC_STATIC25);
pWnd->SetWindowText(lu105[4]);
pWnd=GetDlgItem(IDC_STATIC26);
pWnd->SetWindowText(lu105[5]);
pWnd=GetDlgItem(IDC_STATIC27);
pWnd->SetWindowText(lu105[6]);
pWnd=GetDlgItem(IDC_STATIC28);
pWnd->SetWindowText(lu105[7]);
pWnd=GetDlgItem(IDC_STATIC29);
pWnd->SetWindowText(lu105[8]);
pWnd=GetDlgItem(IDC_STATIC210);
pWnd->SetWindowText(lu105[9]);
pWnd=GetDlgItem(IDC_STATIC211);
pWnd->SetWindowText(lu105[10]);
flag=1;
}
else
{
CWnd* pWnd=GetDlgItem(IDC_STATIC21);
pWnd->SetWindowText(lu77[0]);
pWnd=GetDlgItem(IDC_STATIC22);
pWnd->SetWindowText(lu77[1]);
pWnd=GetDlgItem(IDC_STATIC23);
pWnd->SetWindowText(lu77[2]);
pWnd=GetDlgItem(IDC_STATIC24);
pWnd->SetWindowText(lu77[3]);
pWnd=GetDlgItem(IDC_STATIC25);
pWnd->SetWindowText(lu77[4]);
pWnd=GetDlgItem(IDC_STATIC26);
pWnd->SetWindowText(lu77[5]);
pWnd=GetDlgItem(IDC_STATIC27);
pWnd->SetWindowText(lu77[6]);
pWnd=GetDlgItem(IDC_STATIC28);
pWnd->SetWindowText(lu77[7]);
pWnd=GetDlgItem(IDC_STATIC29);
pWnd->SetWindowText(lu77[8]);
pWnd=GetDlgItem(IDC_STATIC210);
pWnd->SetWindowText(lu77[9]);
pWnd=GetDlgItem(IDC_STATIC211);
pWnd->SetWindowText(lu77[10]);
pWnd=GetDlgItem(IDC_STATIC11);
pWnd->SetWindowText(lu105[0]);
pWnd=GetDlgItem(IDC_STATIC12);
pWnd->SetWindowText(lu105[1]);
pWnd=GetDlgItem(IDC_STATIC13);
pWnd->SetWindowText(lu105[2]);
pWnd=GetDlgItem(IDC_STATIC14);
pWnd->SetWindowText(lu105[3]);
pWnd=GetDlgItem(IDC_STATIC15);
pWnd->SetWindowText(lu105[4]);
pWnd=GetDlgItem(IDC_STATIC16);
pWnd->SetWindowText(lu105[5]);
pWnd=GetDlgItem(IDC_STATIC17);
pWnd->SetWindowText(lu105[6]);
pWnd=GetDlgItem(IDC_STATIC18);
pWnd->SetWindowText(lu105[7]);
pWnd=GetDlgItem(IDC_STATIC19);
pWnd->SetWindowText(lu105[8]);
pWnd=GetDlgItem(IDC_STATIC110);
pWnd->SetWindowText(lu105[9]);
pWnd=GetDlgItem(IDC_STATIC111);
pWnd->SetWindowText(lu105[10]);
flag=0;
}
}
void CComRefer::OnPaint()
{
CPaintDC dc(this); // device context for painting
CBrush NewBrush(RGB(255,0,0));
CBrush *pOldBrush=dc.SelectObject(&NewBrush);
if(m_s1==1)
dc.Ellipse(CRect(168,180,198,210));
if(m_s2==1)
dc.Ellipse(CRect(252,180,282,210));
if(m_s3==1)
dc.Ellipse(CRect(340,180,370,210));
if(m_s4==1)
dc.Ellipse(CRect(425,180,455,210));
if(m_s5==1)
dc.Ellipse(CRect(515,180,545,210));
if(m_s6==1)
dc.Ellipse(CRect(613,180,643,210));
if(m_s7==1)
dc.Ellipse(CRect(700,180,730,210));
if(m_s8==1)
dc.Ellipse(CRect(777,180,807,210));
if(m_s9==1)
dc.Ellipse(CRect(857,180,887,210));
if(m_s10==1)
dc.Ellipse(CRect(940,180,970,210));//上面的指示灯1-10
if(m_x1==1)
dc.Ellipse(CRect(166,457,196,487));
if(m_x2==1)
dc.Ellipse(CRect(252,457,282,487));
if(m_x3==1)
dc.Ellipse(CRect(340,457,370,487));
if(m_x4==1)
dc.Ellipse(CRect(430,457,460,487));
if(m_x5==1)
dc.Ellipse(CRect(520,457,550,487));
if(m_x6==1)
dc.Ellipse(CRect(620,457,650,487));
if(m_x7==1)
dc.Ellipse(CRect(696,457,726,487));
if(m_x8==1)
dc.Ellipse(CRect(777,457,807,487));
if(m_x9==1)
dc.Ellipse(CRect(862,457,892,487));
if(m_x10==1)
dc.Ellipse(CRect(948,457,978,487));//下面的指示灯1-10
dc.SelectObject(pOldBrush);
CBrush NewBrush1(RGB(0,255,0));
CBrush *pOldBrush1=dc.SelectObject(&NewBrush1);
if(m_s1==0)
dc.Ellipse(CRect(168,180,198,210));
if(m_s2==0)
dc.Ellipse(CRect(252,180,282,210));
if(m_s3==0)
dc.Ellipse(CRect(340,180,370,210));
if(m_s4==0)
dc.Ellipse(CRect(425,180,455,210));
if(m_s5==0)
dc.Ellipse(CRect(515,180,545,210));
if(m_s6==0)
dc.Ellipse(CRect(613,180,643,210));
if(m_s7==0)
dc.Ellipse(CRect(700,180,730,210));
if(m_s8==0)
dc.Ellipse(CRect(777,180,807,210));
if(m_s9==0)
dc.Ellipse(CRect(857,180,887,210));
if(m_s10==0)
dc.Ellipse(CRect(940,180,970,210));//上面的指示灯1-10
if(m_x1==0)
dc.Ellipse(CRect(166,457,196,487));
if(m_x2==0)
dc.Ellipse(CRect(252,457,282,487));
if(m_x3==0)
dc.Ellipse(CRect(340,457,370,487));
if(m_x4==0)
dc.Ellipse(CRect(430,457,460,487));
if(m_x5==0)
dc.Ellipse(CRect(520,457,550,487));
if(m_x6==0)
dc.Ellipse(CRect(620,457,650,487));
if(m_x7==0)
dc.Ellipse(CRect(696,457,726,487));
if(m_x8==0)
dc.Ellipse(CRect(777,457,807,487));
if(m_x9==0)
dc.Ellipse(CRect(862,457,892,487));
if(m_x10==0)
dc.Ellipse(CRect(948,457,978,487));//下面的指示灯1-10
dc.SelectObject(pOldBrush1);
GetDlgItem(IDC_STATIC00)->SetFont(&myFont,TRUE);
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialog::OnPaint()
}
void CComRefer::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -