⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tip.cpp

📁 proteus实例集锦
💻 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 + -