我的程序太繁琐帮我看看能不能简单点啊

fox2gg 2006-08-08 04:51:39
定义一个数组bool a[9],要求初始时在对话框界面上数组的每个元素对应加载相同一幅位图如IDB_RED表示状态为0,然后各元素状态变化时其位图能即时更改,如IDB_GREEN表示状态为1。也就是说只需要两幅位图,对于第一个元素我是这样做的:
if(!a[0])
{
CStatic *pStatic=(CStatic *)GetDlgItem(IDC_SHOWBMP0); //a[0]对应加载位图的位置
HBITMAP hBitmap=::LoadBitmap(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_RED));
pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
pStatic->SetBitmap(hBitmap);
}
else
{
CStatic *pStatic=(CStatic *)GetDlgItem(IDC_SHOWBMP0); //a[0]对应加载位图的位置
HBITMAP hBitmap=::LoadBitmap(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_GREEN));
pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
pStatic->SetBitmap(hBitmap);
}
但是问题是每一元素都要这样写,非常麻烦,大家给点意见怎么能够简单一点啊谢谢
...全文
147 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fox2gg 2006-08-13
  • 打赏
  • 举报
回复
谢谢,我试试看
PDD123 2006-08-09
  • 打赏
  • 举报
回复
当然你先要给x赋值
PDD123 2006-08-09
  • 打赏
  • 举报
回复
或者直接这样也可以:
u_int x;//无符号整型
if(!a[x])
{
//我贴出来的代码
}
else
{
//我贴出来的代码
}
PDD123 2006-08-09
  • 打赏
  • 举报
回复
u_int x;//无符号整型
bool *lpa;
lpa=a+x;
if(!(*lpa))
{
CStatic *pStatic=(CStatic *)GetDlgItem(IDC_SHOWBMP0+x); //IDC_SHOWBMP0 应该是位图的ID吧?你把那几个ID的值改成连续的。在resource.h中修改。
HBITMAP hBitmap=::LoadBitmap(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_RED));
pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
pStatic->SetBitmap(hBitmap);
}
else
{
CStatic *pStatic=(CStatic *)GetDlgItem(IDC_SHOWBMP0+x); //a[0]对应加载位图的位置
HBITMAP hBitmap=::LoadBitmap(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_GREEN));
pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
pStatic->SetBitmap(hBitmap);
}

15,976

社区成员

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

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