1.建立工程
右方空白处输入工程名称,然后点击确定
选中基本对话框,点击完成
将右边控件中的图像控件拖到这上面去,然后点击右键,改成位图类型
2.界面设计
布局各自随意,这里用到了静态文本,编辑框,组框,按钮。
(当然你写的时候可以布局一部分,然后编写该部分的代码并且测试)
3.按钮事件响应
布局完成后,双击其中一个按钮会自动设置好函数,你只需要进行编写就行。
(1)绘制直线
这里我们使用的是DDA法绘制直线,当然Bresenham方法也可以,后面设置线宽时用的便是这个算法。
void CExperiment1Dlg::OnOK()
{
float s1,s2,s6,s7; //起始点坐标
int s3,s4,s5; //RGB
CString str1,str2,str3,str4,str5,str6,str7;
//IDC_EDIT1这是编辑框的id,右键该控件就可以看见
GetDlgItemText(IDC_EDIT1,str1);
GetDlgItemText(IDC_EDIT2,str2);
GetDlgItemText(IDC_EDIT3,str3);
GetDlgItemText(IDC_EDIT4,str4);
GetDlgItemText(IDC_EDIT5,str5);
GetDlgItemText(IDC_EDIT6,str6);
GetDlgItemText(IDC_EDIT7,str7);
s1=atof(str1);//将字符串转化成float型
s2=atof(str2);
s6=atof(str6);
s7=atof(str7);
s3=atoi(str3);//那当然atoi就是将字符串转换成整型
s4=atoi(str4);
s5=atoi(str5);
CDC *pDC=GetDlgItem(IDC_STATIC)->GetDC();
Line1(pDC,s1,s6,s2,s7,s3,s4,s5);
}
void Line1(CDC *pDC,int xs,int ys,int xe,int ye,int R,int G,int B)
{
int dx,dy,t; float k,x,y;
if(xs>xe)
{
t=xe,xe=xs,xs=t;
t=ye,ye=ys,ys=t;
}
dx=xe-xs,dy=ye-ys; k=(float)dy/dx;
if(abs(dx)>=abs(dy))
{
y=ys;
for(x=xs;x<=xe;x++)
pDC-