| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2147 人关注过本帖
标题:MFC 单文档 画线的问题
只看楼主 加入收藏
whmjisi
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-3-26
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:8 
MFC 单文档 画线的问题
工程名:Ex_Sound
我已经在viod CEx_SoundView::OnDraw(CDC* pDC)中写如下代码:
void CEx_SoundView::OnDraw(CDC* pDC)
{
    CEx_SoundDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    CPen newPen;
    newPen.CreatePen(PS_SOLID,3,RGB(0,0,0));
    pDC->SelectObject(&newPen);
    pDC->MoveTo(300,0);
    pDC->LineTo(300,120);
    pDC->MoveTo(700,0);
    pDC->LineTo(700,200);
    pDC->MoveTo(0,200);
    pDC->LineTo(100,200);
    pDC->MoveTo(400,600);
    pDC->LineTo(400,300);   
    pDC->Ellipse(50,50,55,55);
    pDC->Ellipse(880,350,885,355);
    pDC->SelectStockObject(BLACK_PEN);
}
以上代码在框架中画出了几条线以及2个圆圈,下面是我的问题:我希望通过对话框中的EDIT控件输入数量,比如输入1,点击确定后,在先前的区域中添加一条直线(起止点比如从(10,10)到(20,20));如果输入2,点击确定,则增添2条直线。。。
希望能有详细过程,我是初学者谢谢。
搜索更多相关主题的帖子: MFC 单文档 
2010-05-24 16:29
zhqhzhqh
Rank: 2
等 级:论坛游民
帖 子:3
专家分:20
注 册:2009-10-17
收藏
得分:15 
不知道你怎么画 但是做法是在资源浏览器中添加一个对话框输入参数 然后在一个合适的位置比如菜单项中添加一个资源按钮 在主框架类中添加该按钮的相应函数,然后用对话类调出对话框,最后让这个对话框的输入参数关联View类或者文档类的一个新添的成员变量,这个值就是你要的直线条数。
我做了 就是不知道你想怎么画图
2010-05-24 21:08
ybjx1987
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:26
专家分:175
注 册:2008-11-26
收藏
得分:5 
可以用for语句实现嘛,
for(int i=0;i<n;i++)'n为你输入的那个数;
{
pDC->moveto(0,10*i);
pDC->LiveTo(100,10*i);
}
把这个写在一个Button函数中就可以了。
这只是一个思路,具体过程差不多就是这样的。
2010-05-24 23:26
whmjisi
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-3-26
收藏
得分:0 
回复 楼主 whmjisi
谢谢啦,能更详细点就更好了。我现在的图是这样的附件中
然后比如在对话框中输入2,即添加2条直线(其实直线位置我还没定,改坐标而已,关键是过程),点确定后就能实现。
如果可以的画再详细点,我先按你方法去做做看,有问题再请教哈。
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-05-25 09:11
whmjisi
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-3-26
收藏
得分:0 
回复 3楼 ybjx1987
大概思路我知道,就是在按钮函数中不能直接写画线的代码,是不是画线代码只能在VIEW类中的ONDRAW函数中写?但是直接写在ONDRAW函数中的话一运行就显示了,怎么办呢
2010-05-25 14:10
whmjisi
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-3-26
收藏
得分:0 
回复 2楼 zhqhzhqh
我想在VIEW类中的ONDRAW函数中添加画线条件,比如当DIALOG中的EDIT(编辑框,假设变量名为m_number)数字为1时,画一条线,用
if(m_number==1)
{...}//执行画一条线功能
但是问题是,貌似在VIEW类中OINDRAW函数中还是没m_number这个变量,我是在DIALOG类中定义的变量,可以关联过去吗?可以的话怎么操作?
2010-05-25 14:27
ybjx1987
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:26
专家分:175
注 册:2008-11-26
收藏
得分:10 
回复 5楼 whmjisi
你可以设置一个全局变量m_bl=0,
在view的OnDraw()中用
if(m_bl==1)
{
画图函数;
}
在Button中添加代码
m_bl=1;
RedarwWindow();
就可以点击Button后再画图了。
2010-05-25 21:40
whmjisi
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-3-26
收藏
得分:0 
回复 7楼 ybjx1987
谢谢,我已经解决啦
2010-05-26 08:54
中华战土
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-10-20
收藏
得分:0 
     teechart控件
2018-10-20 13:47
快速回复:MFC 单文档 画线的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023087 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved