关于按钮设置背景的问题

lwx_work 2008-11-28 02:23:25
反复给动态创建的按钮设置背景,然后销毁,重复上述操作200次,按钮的背景就出不来了
//设置背景
m_ButtonScreen.Create(_T(""),WS_CHILD|BS_BITMAP|WS_VISIBLE|BS_PUSHBUTTON,CRect(0,0,352,288),this,IDC_SCREEN);//CRect(0,0,430,350)
HBITMAP hBitmap= ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP_SCREEN));
m_ButtonScreen.SetBitmap(hBitmap);
//释放资源
m_ButtonScreen.SetBitmap(NULL);
DeleteObject(hBitmap);
以上便是全部代码,请高人指点,为什么200多次按钮的背景就出不来了。
...全文
99 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwx_work 2008-11-28
  • 打赏
  • 举报
回复
问题解决了,结贴散分
yuhudie203 2008-11-28
  • 打赏
  • 举报
回复

m_button.Create("",WS_CHILD|BS_BITMAP|WS_VISIBLE|BS_PUSHBUTTON,CRect(0,0,100,100),this,123);
HBITMAP hBitmap= ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP_EYE));
m_button.SetBitmap(hBitmap);
Invalidate(FALSE);
Sleep(10000);
m_button.SetBitmap(NULL);
DeleteObject(hBitmap);

这样?能执行么?
lwx_work 2008-11-28
  • 打赏
  • 举报
回复
定时器
先调设置背景
//设置背景
m_ButtonScreen.Create(_T(""),WS_CHILD|BS_BITMAP|WS_VISIBLE|BS_PUSHBUTTON,CRect(0,0,352,288),this,IDC_SCREEN);//CRect(0,0,430,350)
HBITMAP hBitmap= ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP_SCREEN));
m_ButtonScreen.SetBitmap(hBitmap);
10秒后调下面这个函数
//释放资源
m_ButtonScreen.SetBitmap(NULL);
DeleteObject(hBitmap);
然后立刻又调用设置背景函数,10秒后再调用释放,就样反复200次嘛
bai_hua_lin 2008-11-28
  • 打赏
  • 举报
回复
如果是改变按钮的背景色和前景的字体颜色,则需要写个派生自CButton的类,在这个类里重写DrawItem函数,函数的书写可以参照MSDN,里头有个例子。
如果是给按钮做个背景图片上去 ,则用CBitmapButton类要方便一些,先调用LoadBitmaps(),再调用SizeToContent()即可。
yuhudie203 2008-11-28
  • 打赏
  • 举报
回复
你的循环是怎么写的?两个放在一起显示不出来
分开写是怎么实现两百次的?
Chivalry 2008-11-28
  • 打赏
  • 举报
回复
我把m_ButtonScreen设置为类的CButton类型的成员变量,循环执行代码,会报错啊
gamezealot 2008-11-28
  • 打赏
  • 举报
回复
你的代码每一句都没有判断是否成功,加上检测代码吧,那样你就知道哪儿失败了!然后再找原因。
lwx_work 2008-11-28
  • 打赏
  • 举报
回复
是啊,就是设置背景,然后取消背景,这两个操作重复200次,测试时候写在了循环里 没错
Chivalry 2008-11-28
  • 打赏
  • 举报
回复
你这个200次什么意思,循环?

15,978

社区成员

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

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