| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1303 人关注过本帖
标题:[求助]对话框中作图
取消只看楼主 加入收藏
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
 问题点数:0 回复次数:8 
[求助]对话框中作图

在对话框刚显示时就在其上画一条线啥的,在哪个事件中画?

搜索更多相关主题的帖子: 对话框 中画 
2006-11-01 11:08
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 
onPiant会被多次调用的!我只想在对话框出现时画一次!
三楼朋友,初始化函数指的是什么?构造函数?对话框还没出来就画行吗?

2006-11-01 13:47
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 
我的程序要实现的功能是:在程序中弹出一对话框,上面贴着地图(图片),通过鼠标点击的位置确定要去的位置

刚弹出时,要在图片上画一个小十字叉,表明现在所处的位置,然后,鼠标每点击一次图片上别的地方,十字叉就画到鼠标所点位置,我在鼠标的OnLButtonDown事件里写入: Invalidate(false);//消除已经画上的十字叉
在鼠标的OnLButtonUp事件里写入:
CDC *pDC= GetDC();//x,y是鼠标坐标
pDC->MoveTo(x,y-5);
pDC->LineTo(x,y+5);
pDC->MoveTo(x-5,y);
pDC->LineTo(x+5,y);
现在唯一缺的就是对话框刚出来时,要显示十字叉的功能,不知大家看明白了没有?

[此贴子已经被作者于2006-11-1 13:58:39编辑过]


2006-11-01 13:57
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 
没反应!

2006-11-01 15:37
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 
楼上的哥们没明白我的意图,我是在对话框刚显示时就画图,就算我在Opaint里画,也出不来!
我在OnInitDialog里打开定时器,100毫秒后,在Ontimer里画,出来了,总不能这样做吧!?

有没有一个事件是表明对话框已经显示出来了呢?

[此贴子已经被作者于2006-11-1 15:51:06编辑过]


2006-11-01 15:48
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 
void JumpingDialog::OnPaint()
{
CPaintDC dc(this); // device context for painting

// TODO: Add your message handler code here

int x=100;
int y=100;
CDC *pDC= GetDC();
CPen pen(PS_SOLID,5,0x00ff00);
CPen* op=pDC->SelectObject(&pen);
pDC->MoveTo(x,y-5);
pDC->LineTo(x,y+5);
pDC->MoveTo(x-5,y);
pDC->LineTo(x+5,y);
pDC->SelectObject(op);
pen.DeleteObject();

// Do not call CDialog::OnPaint() for painting messages
}

2006-11-01 15:57
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 
我发现问题了,画的叉被我的图片盖住了!看来这个叉要在图片的显示之后显示!

2006-11-01 16:11
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 
我想用OnDrawItem,就是在那个图片Draw了以后再画叉,可是还是没有!

void JumpingDialog::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call default

CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);

if(nIDCtl==IDC_STATIC_IMG){//图片ID

int x=100;
int y=100;
CDC *pDC= GetDC();
CPen pen(PS_SOLID,5,0x00ff00);
CPen* op=pDC->SelectObject(&pen);
pDC->MoveTo(x,y-5);
pDC->LineTo(x,y+5);
pDC->MoveTo(x-5,y);
pDC->LineTo(x+5,y);
pDC->SelectObject(op);
pen.DeleteObject();


}

}

2006-11-01 16:24
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 
呵呵就是啊,英雄所见啊 :|

2006-11-01 16:55
快速回复:[求助]对话框中作图
数据加载中...
 
   



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

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