求助:关于窗口重绘

zjy040191 2012-09-28 09:05:58
有3个复选框按钮,选中不同的按钮会在窗口区画出不同的图形,现在3个按钮都处于选中状态,窗口区中显示3个相应的图形,要实现选中按钮之后取消选中,该按钮对应的图形将消失,然而其他选中按钮对应的图形不会消失
...全文
92 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Eleven 2012-09-29
或者重写CButton类,添加处理虚函数DrawItem
回复
Eleven 2012-09-29
找个CButtonST看看~
回复
lgd_hit 2012-09-28
这个就是界面自绘,有兴趣可以看看我的浏览器的界面设计 http://www.yyexplore.com
回复
zjy040191 2012-09-28
[Quote=引用 2 楼 的回复:]

C/C++ code
//在OnPaint中画出你要的图形
void CMyDialog::OnPaint()
{
CPaintDC dc(this);
CButton* pBtn1=(CButton*)GetDlgItem(IDC_BUTTON1);
if(pBtn1.GetCheck())
{
dc......;//画出第一个图形
}……
[/Quote]

十分感谢
回复
Freedom 2012-09-28
[Quote=引用 2 楼 的回复:]

C/C++ code
//在OnPaint中画出你要的图形
void CMyDialog::OnPaint()
{
CPaintDC dc(this);
CButton* pBtn1=(CButton*)GetDlgItem(IDC_BUTTON1);
if(pBtn1.GetCheck())
{
dc......;//画出第一个图形
}……
[/Quote]
++1
邓总的方法可以解决
回复
邓学彬 2012-09-28
//在OnPaint中画出你要的图形
void CMyDialog::OnPaint()
{
CPaintDC dc(this);
CButton* pBtn1=(CButton*)GetDlgItem(IDC_BUTTON1);
if(pBtn1.GetCheck())
{
dc......;//画出第一个图形
}
}
//按钮被点击事件
void CMyDialog::OnBtnClink1()
{
//让窗口刷新,将会触发OnEraseBkgnd、OnPaint
InvalidateRect(NULL,TRUE);
}







回复
傻X 2012-09-28
在WM_PAINT的OnPaint函数中3个BOOL型标记来判断是否画图,3个3个BOOL型标记分别和你CheckBox绑定。

回复
相关推荐
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2012-09-28 09:05
社区公告
暂无公告