一、计算器:
(1)、新建一个MFC AppWizard(exe)文件,选择Dialog based 点击Finish;
(2)、删除原有窗口上的所有按钮控件,添加三个文本框和两个按钮;按钮分别改为清零和计算,
(3)、在窗口界面单机右键选择ClassWizard→Member Variables 将IDC_EDIT1的Type改为int,Member改为m_1;将IDC_EDIT2的Type改为int,Member改为m_2;将IDC_EDIT3的Type改为int,Member改为m_3;
(4)双击结果按钮,添加代码:
UpdateData(TRUE);
m_3=m_2+m_1;
UpdateData(FALSE);
(5)、双击清零按钮,添加代码:
UpdateData(TRUE);
m_1=0;
m_2=0;
m_3=0;
UpdateData(FALSE);
(6)、点击编译运行。
二、调用颜色对话框:
(1)、添加一个“颜色改变”按钮,在头文件中定义三个颜色变量
intm_nRed;
intm_nGreen;
int m_nBlue;
(2)、初始化变量
m_nRed=0; m_nGreen=0; m_nBlue=0;
(3)、调用颜色函数:CRect rect;
CPaintDC dc(this);
GetClientRect(rect);
dc.FillSolidRect(rect,RGB(m_nRed,m_nGreen,m_nBlue));
(4)、调用颜色对话框
CColorDialog cDig(RGB(m_nRed,m_nGreen,m_nBlue));
if(cDig.DoModal()==IDOK)
{
COLORREF color=cDig.GetColor();
m_nRed=GetRValue(color);
m_nGreen=GetGValue(color);
m_nBlue=GetBValue(color);
}
Invalidate();
三、添加背景图片:
(1)选中主文件夹,右键添加一个.bmp格式的图片。
(2)在头文件中定义一个刷子: CBrush m_brush;
把颜色函数注释掉://dc.FillSolidRect(rect,RGB(m_nRed,m_nGreen,m_nBlue));
(3)在类向导中添加WM_CTLCOLOR,并写入代码:
if(nCtlColor==CTLCOLOR_DLG)
return m_brush;
(4)在定义下写代码:
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
m_brush.CreatePatternBrush(&bmp);
四、添加定时器
(1)、定义SetTimer(1,1000,NULL);
(2)、在类向导中添加TIMER并添加代码:
if(nIDEvent==1)
{
m_nRed=rand()%255;
//CString str;
//str.Format("red=%d",m_nRed);
//AfxMessageBox(str);//输出红色所占比例;
m_nGreen=rand()%255;
m_nBlue=rand()%255;
Invalidate();
//KillTimer(1);关闭定时器
}
五、背景颜色和图片的转换
(1)、在颜色函数上方添加代码:
if(!m_bShowImg)
(2)、
添加按钮“背景转换”并添加代码:
m_bShowImg= !m_bShowImg;
Invalidate();