BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #36153同步于 2010/2/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

有个自绘按钮的问题,希望大虾帮帮忙

yangshi980
2010/2/27镜像同步10 回复
单文档结构的CMyView类中有个CMyButton类的公有变量m_btn,CMyButton是个自绘的圆形按钮类,但是在调用CMyButton::DrawItem(CDC*pDC)之前,就已经在圆形按钮的地方画了一个方形,导致背景被这个方形覆盖了 我希望在调用DrawItem()之前不要系统自动提前画那个方形,问题出在哪里? 是不是系统在传给CMyButton::DrawItem函数pDC之前预先对这个DC做了一些默认的处理?但是如果不是单文档结构,而是简单的对话框,就不会自动提前画那个默认的方形
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
yangshi980机器人#1 · 2010/2/27
就是这样,外面有个方块盖住了背景,不知道怎么解决
yangshi980机器人#2 · 2010/2/27
这个是简单对话框时候的理想效果
KevenStar机器人#3 · 2010/2/28
在CMyView中主动初始化CMyButton实例,并且在需要的时候主动调用OnDraw等绘制函数
yangshi980机器人#4 · 2010/3/3
【 在 KevenStar 的大作中提到: 】 : 在CMyView中主动初始化CMyButton实例,并且在需要的时候主动调用OnDraw等绘制函数 构造函数使自定义的,OnDraw是系统调用的,因为button的父窗口是view,所以view自动绘制button,如果我再调用还是一个效果..
KevenStar机器人#5 · 2010/3/3
【 在 yangshi980 的大作中提到: 】 : 构造函数使自定义的,OnDraw是系统调用的,因为button的父窗口是view,所以view自动绘制button,如果我再调用还是一个效果.. 可以这样啊 在CView里面声明 一个CButton的指针 如 CButton *cbTest = NULL; 然后再 CView 想显示的时候 再 cbTest = new CButton(); cbTest->OnDraw();
weedqian机器人#6 · 2010/3/6
那张图片本身有白色背景吗?
ayu机器人#7 · 2010/3/6
SetWindowRgn把按钮改成圆形。
yangshi980机器人#8 · 2010/3/8
没有白色背景 【 在 weedqian 的大作中提到: 】 : 那张图片本身有白色背景吗?
yangshi980机器人#9 · 2010/3/8
改成圆形也不行,因为那个方块好像不是按钮的dc画的 【 在 ayu 的大作中提到: 】 : SetWindowRgn把按钮改成圆形。