MFC按钮贴图碰到的问题

djh512 2014-01-22 10:38:40
按钮贴图代码如下
在头文件中定义

CBitmapButton m_btnregister;
CBitmapButton m_btnverify;

cpp的OnInitDialog()函数中

m_btnregister.LoadBitmaps(IDB_BITMAP_REGISTER);
m_btnregister.SubclassDlgItem(IDC_BUTTON_MODEL, this);
m_btnregister.SizeToContent();

m_btnverify.LoadBitmaps(IDB_BITMAP_VERIFY);
m_btnverify.SubclassDlgItem(IDC_BUTTON_VERIFY, this);
m_btnverify.SizeToContent();

按钮贴图的效果能达到,现在的问题是在点击按钮时,有时候按钮会消失,效果如下图所示
贴好图的按钮

按钮消失的情况


而且有意思的是左右两个按钮,左边会出现响应单机消息偶尔消失的情况,右边不会
不知道是什么导致这个问题,各位有碰到没有,又该怎么解决

ps:单击按钮进入一个新的线程,这个应该对按钮的显示木有影响吧
...全文
502 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2014-02-22
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
worldy 2014-01-22
  • 打赏
  • 举报
回复
MSDN上面有说,CBitmapButton在不同的应用类型需要不同的位图,见下表 Various applications demand different combinations of bitmap images: Up Down Focused Disabled Application × Bitmap × × Button without WS_TABSTOP style × × × × Dialog button with all states × × × Dialog button with WS_TABSTOP style
djh512 2014-01-22
  • 打赏
  • 举报
回复
引用 5 楼 zhuyf87 的回复:
m_btnTest1.LoadBitmaps(IDB_TEST1_UP, IDB_TEST1_DOWN);
m_btnTest1.SubclassDlgItem(IDC_BTN_TEST1, this);
m_btnTest1.SizeToContent();
换成这样还是会出现这个问题,会偶尔出现
djh512 2014-01-22
  • 打赏
  • 举报
回复
引用 2 楼 xiaoc1026 的回复:
可以把 CBitmapButton 的代码贴出来看下

void CMyDlg::OnBnClickedButtonModel()
{
     AfxBeginThread((AFX_THREADPROC)ThreadProcModel,this,THREAD_PRIORITY_IDLE);
}

DWORD WINAPI ThreadProcModel(LPVOID pParam)
{
CMyDlg * pDlg = (CMyDlg *)pParam;
	
  // ......
pDlg->Invalidate();

const int nTemplatesPerPeron = 3;
int index = 0;
while(index < nTemplatesPerPeron)
{
	IplImage* m_Frame;
	m_Frame=cvQueryFrame(capture);
        // 处理单张图像 设计到界面显示
}
	pDlg->Invalidate();
	return 0; 

}
zhuyf87 2014-01-22
  • 打赏
  • 举报
回复
m_btnTest1.LoadBitmaps(IDB_TEST1_UP, IDB_TEST1_DOWN);
m_btnTest1.SubclassDlgItem(IDC_BTN_TEST1, this);
m_btnTest1.SizeToContent();
zhuyf87 2014-01-22
  • 打赏
  • 举报
回复
CBitmapButton是MFC里面的那个吗?以前用过没问题。
djh512 2014-01-22
  • 打赏
  • 举报
回复
引用 1 楼 worldy 的回复:
按钮在释放状态和点击状态要分别提供贴图
只用一个图不行么,我后面一个按钮基本没碰到这个问题
见习学术士 2014-01-22
  • 打赏
  • 举报
回复
可以把 CBitmapButton 的代码贴出来看下
worldy 2014-01-22
  • 打赏
  • 举报
回复
按钮在释放状态和点击状态要分别提供贴图
liuh2013 2014-01-22
  • 打赏
  • 举报
回复
m_btnregister.SubclassDlgItem(IDC_BUTTON_MODEL, this); 这个去掉就可以了。
allenhiman 2014-01-22
  • 打赏
  • 举报
回复
你所谓的消失 按钮实际上还在那里吗? 还能点吗?

15,979

社区成员

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

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