怎样在STATIC控件里绘图?

shager 2006-09-09 10:01:43
我在对话框上加了个STATIC控件,但是用GetDlgItem(IDC_STATIC)->GetDC()->TextOut(0,0“hello”)没有显示,但是用GetDlgItem(IDC_STATIC)->SetWindowText(“hello”)可以正常显示,这是为什么?如何才能在静态控件上绘图? 还有在OnPaint()函数里调用基类的OnPaint函数有什么含意?
...全文
362 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shager 2006-09-10
  • 打赏
  • 举报
回复
用SetBitmap()?但是我要自己画图,是不是要用双缓冲,创建一个设备兼容的位图,然后在虚拟位图里面画?然后再把位图显示?
dch4890164 2006-09-10
  • 打赏
  • 举报
回复
继承它,之后重在
littlepboy 2006-09-10
  • 打赏
  • 举报
回复
1.调用SetBitmap();
2.OnPaint()里画;
3.GetDlgItem(IDC_STATIC)->GetDC()->TextOut(0,0“hello”)这种用法太不可取了。
littlepboy 2006-09-10
  • 打赏
  • 举报
回复
11
清歌谁与和 2006-09-10
  • 打赏
  • 举报
回复
如果不想派生,可以这样:

先删掉标签Caption的内容

在对话框初始化函数里设置标签为自绘
GetDlgItem(IDC_STATIC)->ModifyStyle(0, BS_OWNERDRAW);

在OnPaint函数里画
GetDlgItem(IDC_STATIC)->GetDC()->TextOut(0,0,"hello");

注意标签的ID别写错



菜牛 2006-09-10
  • 打赏
  • 举报
回复
IDC_STATIC?应该修改成其它ID吧。

在OnPaint()函数里调用基类的OnPaint函数有什么含意?


++++++++++++
基类的OnPaint()就是绘制界面,如果去掉界面就不会更新。一般在前面调用基类的绘制,如果放在后面,你绘制的东西就会被刷新掉。
shager 2006-09-10
  • 打赏
  • 举报
回复
楼上的,一定要派生吗?不派生是不是就没有办法画?
清歌谁与和 2006-09-10
  • 打赏
  • 举报
回复
从CStatic派生一个类,在自己的类里画
  • 打赏
  • 举报
回复
把控件和CStatic对象关联起来
shager 2006-09-09
  • 打赏
  • 举报
回复
还是不行啊,就是画了就闪了,看不到,在拖动窗口的时候可以看到显示了内容,就是最后一下就没有了
jixingzhong 2006-09-09
  • 打赏
  • 举报
回复
把这个STATIC控件 属性中 notify 选项选上就可以接收通告消息了 ...

15,976

社区成员

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

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