请教关于在STATIC中绘图的问题!

siriurs 2012-02-08 04:14:32
本人刚刚接触VC, 现在项目遇到问题.

界面中有一个ListBox, 一个Static, 选中列表中某一项时, 要在Static中绘制相应的图片预览. 关于如何绘图,查了查资料, 都说的不是很详细, 代码也缺少注释, 新人看不太懂. 现在有几个问题想请教一下,麻烦回答详细一点

1: 看资料说绘图代码要放在OnPaint()中, 那我如何让程序运行是不显示, 当选中列表中一项的时候如何调用绘图函数, 并传参进去?

2: 我看有些资料是读取现有的位图, 然后再绘制. 我没有现成的位图, 可以不生成位图, 直接将图片的画法保存在内存中然后绘制到Static中吗? 需要怎样做?

3: 我在网上资料中复制了别人的绘图例子放到我的代码中, 运行之后static中是画出线了, 但是对话框上的其他控件不见了,这是为什么呢? 如何解决?
...全文
174 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2012-02-12
  • 打赏
  • 举报
回复
STATic起个占位的作用,作图作在父窗口上。
Lactoferrin 2012-02-12
  • 打赏
  • 举报
回复
用CreateCompatibleDC创建一个和CStatic的dc兼容的dc
然后用CreateDIBitmap创建一个位图,参数有bmp头以及图形的数据
SelectObject
BitBlt复制图像
siriurs 2012-02-12
  • 打赏
  • 举报
回复
自己顶以下,知道的高手麻烦留个简单的例子
siriurs 2012-02-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 visualeleven 的回复:]
OnPaint函数中得到CStatic控件的DC,直接在上面绘制图形即可
[/Quote]

可以说的详细一点吗?怎么写入进去呢?bmp头以及图形的数据
Eleven 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 siriurs 的回复:]

现在问题1和3都已经解决,还剩问题2

我想知道的是,不通过位图,如何向Bitmap写入数据,直接在内存中生成图片信息,然后画到static上
[/Quote]
OnPaint函数中得到CStatic控件的DC,直接在上面绘制图形即可
siriurs 2012-02-10
  • 打赏
  • 举报
回复
现在问题1和3都已经解决,还剩问题2

我想知道的是,不通过位图,如何向Bitmap写入数据,直接在内存中生成图片信息,然后画到static上
siriurs 2012-02-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lgstudyvc 的回复:]
在资源里也可以直接把图片加到static中
[/Quote]

我在问题里说了,没有生成的BMP图,我需要根据参数去画不同的图,现画的
siriurs 2012-02-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hdg3707 的回复:]
如果图片是BMP格式的,就把STATIC控件改成PICTURE控件,这样就可以根据ListBox的选项值显示相应的图片
[/Quote]

我测试发现,不把画图函数写在OnPaint里也可以画=.= 那我就可以调用自定义的函数画图了
lgstudyvc 2012-02-08
  • 打赏
  • 举报
回复
在资源里也可以直接把图片加到static中
hdg3707 2012-02-08
  • 打赏
  • 举报
回复
如果图片是BMP格式的,就把STATIC控件改成PICTURE控件,这样就可以根据ListBox的选项值显示相应的图片
向立天 2012-02-08
  • 打赏
  • 举报
回复
不建议用static做
可以用自定义控件实现
参考http://blog.csdn.net/xianglitian/article/details/6075653

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧