求助:关于窗口重绘

zjy040191 2012-09-28 09:05:58
有3个复选框按钮,选中不同的按钮会在窗口区画出不同的图形,现在3个按钮都处于选中状态,窗口区中显示3个相应的图形,要实现选中按钮之后取消选中,该按钮对应的图形将消失,然而其他选中按钮对应的图形不会消失
...全文
200 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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);
}







看不见的裂痕 2012-09-28
  • 打赏
  • 举报
回复
在WM_PAINT的OnPaint函数中3个BOOL型标记来判断是否画图,3个3个BOOL型标记分别和你CheckBox绑定。

15,980

社区成员

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

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