VC++6.0实现直线扫描转换

一、添加菜单栏

使用VC++6.0新建一个空白文档后,双击【Menu】下的【ID_MAINFRAME】,添加一个子菜单,如下

添加ID和标题,ID务必保证是唯一的

 注意:【画图】和【Brehensam画圆】这两个菜单是博主之前添加的,大家可以忽略,直接添加自己定义的菜单即可。

二、添加对话框

找到【Dialog】,右键选择【Insert Dialog】,如下

 拖入五个文本框和四个编辑框,布局自定义即可,右键文本框控件选择【Properties】,输入标题即可,效果如下

 

 

 

 文本框修改好之后,轮到编辑框,同样右击编辑框,选择【Properties】,填入对应的ID,最好与输入相对应,如下

 以上操作完成后,在对话框任意空白位置双击,会弹出对话框,选择【OK】

 为对话框起个名字,尽量不要以大写C开头,输入完成后选择【OK】

 出现如下界面,选择【OK】

 选中对话框【中点画线】,点击【ClassWizard】,为其添加成员变量,如下

选择对应的类名以及子菜单的ID,点击【OK】

再次打开【ClassWizerd】,添加变量

 以此类推,添加完成后如下,点击【OK】

 三、建立消息映射

无需选中任何选项,点击【View】,选择【ClassWizard】

注意Class name和Object ID以及Message的选择, Object ID要选择子菜单的ID

 点击【Add Function】,直接点击【OK】即可,使用默认的函数名

 再次点击【OK】即可

 四、编写函数

双击打开【testView.cpp】,添加头文件

 测试,编写代码,测试菜单与对话框是否建立了联系

点击感叹号运行,点击子菜单弹出对话框则说明正常建立了联系,如下 

 打开【testView.h】,建立全局变量

 打开【testView.cpp】,给全局变量赋值

 

 编写算法函数,将下列代码粘贴到上述函数的下方

void CTestView::MidLine(){
	CClientDC dc(this); //添加上下文,确定画布
    COLORREF rgb=RGB(0,0,225); //添加画笔颜色
    int a,b,delta1,delta2,d,x,y;
    a=y1-y2;
    b=x2-x1;
    d=2*a+b;
    delta1=2*a;
    delta2=2*(a+b);
    x=x1;
    y=y1;
    dc.SetPixel(x,y,rgb);
    while(x<x2)
    {
        if(d<0)
		{
            x++;
            y++;
            d+=delta2;
		}
        else
		{
            x++;
            d+=delta1;
		}
        dc.SetPixel(x,y,rgb);
   }
}

打开【testView.h】,对函数MidLine进行声明

运行程序,输入坐标

 

 效果如下

 

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值