📄 tip.cpp
字号:
// Tip.cpp : 实现文件
//
#include "stdafx.h"
#include "NEWUG.h"
#include "Tip.h"
// CTip 对话框
bool CTip::RESET=TRUE;
IMPLEMENT_DYNAMIC(CTip, CDialog)
CTip::CTip(CWnd* pParent /*=NULL*/)
: CDialog(CTip::IDD, pParent)
{
}
CTip::~CTip()
{
}
void CTip::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CTip, CDialog)
ON_WM_PAINT()
ON_WM_CTLCOLOR()
END_MESSAGE_MAP()
// CTip 消息处理程序
void CTip::OnOK()
{
DestroyWindow();
}
void CTip::OnCancel()
{
DestroyWindow();
}
void CTip::SetTip(int index)//根据index数值决定输出哪个文本
{
CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT2);
if(index==0)
{
pEdit->SetWindowTextW(_T("0:欢迎使用“51开发板典藏版”仿真平台!按UP和DOWN键浏览菜单,按ENTER键选择功能。"));
}
if(index==1)
{
pEdit->SetWindowTextW(_T("1:测量电压功能。电压0---5V。"));
}
if(index==2)
{
pEdit->SetWindowTextW(_T("2:测量电阻功能。电阻0---1KΩ。"));
}
if(index==3)
{
pEdit->SetWindowTextW(_T("3:测量温度功能。该项功能仿真稍微慢,请耐心等待!返回响应慢,请耐心等待!"));
}
if(index==4)
{
pEdit->SetWindowTextW(_T("4:数码管自动计数功能。"));
}
if(index==5)
{
pEdit->SetWindowTextW(_T("5:LED效果演示功能。返回响应慢,请耐心等待!"));
}
if(index==6)
{
pEdit->SetWindowTextW(_T("6:虚拟串口通信功能。请确保事先使用虚拟串口软件增加了COM3和COM4。Proteus默认使用COM3,可以使用串口调试软件在COM4接收。2400波特/s,8数据,1停止,无奇偶检验,以上设定不可以更改。"));
}
if(index==7)
{
pEdit->SetWindowTextW(_T("7:毫秒表功能。按下BUTTON_MIL键开始计时,再次按下结束计时。按照以下操作进行可以返回菜单:a先按任意键;b再快速按两次BUTTON_MIL键。"));
}
if(index==8)
{
pEdit->SetWindowTextW(_T("8:马达驱动功能。一个简单的演示。"));
}
if(index==9)
{
pEdit->SetWindowTextW(_T("9:测量频率功能。通过改变第三页电路图上标号“EXTERNALCLOCK”的Generator改变频率,最好不要超过5KHz。频率越高,测量误差越大!注意:不要打开NE555的仿真,否则仿真极慢!"));
}
if(index==10)
{
pEdit->SetWindowTextW(_T("10:输出正弦波功能。请您自己在第二页电路图上放置示波器,空连一根wire,标号设定为“SINE”(没有双引号,注意大写!)。仿真正弦波时很慢,可以按下列方法解决。打开“mcu.asm”源程序,定位在约85行,有一条被注释掉的语句“;jmp FUNCTION10”,删去注释,重新编译即可。"));
}
if(index==11)
{
pEdit->SetWindowTextW(_T("11:1KHz脉冲测试音功能。请您自己在第二页电路图上放置示波器,连wire接入Q1集电极,并且打开扬声器的仿真(鼠标右击扬声器,打开Edit Component对话框,取消Exclude from Simulation,注意在其它功能时一定要勾上,否则仿真慢!)。"));
}
if(index==12)
{
pEdit->SetWindowTextW(_T("用户自定义功能。什么都没有实现,留下位置供您自己写代码。"));
}
if(index==13)
{
pEdit->SetWindowTextW(_T("???功能。自己试试吧,不要经常用此功能!"));
}
if(index==-1)
{
pEdit->SetWindowTextW(_T("-1:选择主动模式还是从动模式。按键1选择主动模式,其它键选择从动模式,从动模式自动启动外挂程序。"));
}
}
void CTip::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialog::OnPaint()
}
HBRUSH CTip::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
if (pWnd->GetDlgCtrlID() == IDC_EDIT2)
{
pDC->SetTextColor(RGB(255, 255, 255));
pDC->SetBkColor(RGB(0, 0, 0));//让那个提示空间变成黑色背景,白色文字。
}
if (pWnd->GetDlgCtrlID() == IDC_STATIC1)
{
if(CTip::RESET==TRUE)
{
pDC->SetTextColor(RGB(255, 0, 0));//如果复位就红色显示
}
else
{
pDC->SetTextColor(RGB(0,0,0));//否则黑色
}
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
void CTip::MySetText()
{
CStatic* m_Static=(CStatic*)GetDlgItem(IDC_STATIC1);
m_Static->SetWindowTextW(_T("在主动模式下没有发现任何异常。\n在从动模式下,经常会莫名其妙地复位。我不知道是程序设计上的缺陷还是Proteus的问题,一直没有找出来。最大的可能性是仿真串口时造成的紊乱。如果您看到此处的字体颜色变成红色,就不要在外挂程序上按任何按钮,请操作电路图上的键盘。"));
//重新刷新一下文字,windows就会触发OnCtlColor来改变颜色,实际上我不知道怎么触发OnCtlColor
//想了这个笨法子
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -