程序想实现如下功能:一个简单的对话框程序,里面有一个Button控件和一个Picture控件。
对话框开始时Picture控件不显示任何东西。当点击这个Button时Picture控件显示图片1,再次点击Button时显示图片2。即点击图片时Picture控件显示的图片在两张图片中切换。
本人新手,请指教。
对话框开始时Picture控件不显示任何东西。当点击这个Button时Picture控件显示图片1,再次点击Button时显示图片2。即点击图片时Picture控件显示的图片在两张图片中切换。
本人新手,请指教。
解决方案 »
- error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)
- 集合类使用心得
- 如何模拟 多客户端连接服务器
- 编辑时控件的大小和运行时的大小的问题
- 急!急!急!已有c++基础,多久可以基本掌握vc?vc程序员的就业前景,工资待遇?
- 求救啊,有关于进程隐藏的技术
- 如何获取系统精确到毫秒级的时间?
- 怎样在程序中自动切换输入法?
- 在没有装VC的机子里发行程序的困惑。
- CArchive & StoreStr(CArchive & ar, CString & str);什么意思?能给详细讲解否?
- 求助:在XP系统用VC6.0开发的OCX,在WIN7下调试设置断点无效问题。
- vc6.0下使用richtextbox如何一直显示最后输出的数据?
... OnClickBt(...)
{
...
// Create a child bitmap static control.
myStatic.Create(_T("my static"),
WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(10,10,150,50),
pParentWnd);// Set the bitmap of the static control to be the
// system check- bitmap.
myStatic.SetBitmap( ::LoadBitmap(NULL, MAKEINTRESOURCE(OBM_CHECK)) );
}
... OnClickBt(...)
{
...
// Create a child bitmap static control.
myStatic.Create(_T("my static"),
WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(10,10,150,50),
pParentWnd);// Set the bitmap of the static control to be the
// system check- bitmap.
myStatic.SetBitmap( ::LoadBitmap(NULL, MAKEINTRESOURCE(OBM_CHECK)) );
}
E:\VCSTUDY\dsf\dsfDlg.cpp(184) : error C2065: 'OBM_CHECK' : undeclared identifier
OBM_CHECK 是图片的ID怎么觉得这个帖子这么熟呢?
将pParentWnd 改成this
OBM_CHECK 改为IDB_BITMAP1,它是我在程序里添加的Bitmap资源的ID编译时OK,运行时还是不行:
运行时先点击按扭,没有变化,没有显示位图,再次点击,出错。
CStatic m_ctrlPicture;//Picture控件的关联变量
CBitmap m_bmps[2];//假设您有两幅图片
BOOL m_bClick;
在OnInitDialog()中:
UINT nIDS[] = {IDB_BITMAP1,IDB_BITMAP2};
for(int i =0; i < 2; i++)
m_bmps[i].LoadBitmap(nIDs[i]);然后在您的Button单击响应函数里:
m_bClick != m_bClick;
if(m_bClick)
m_ctrlPicture.SetBimap((HBITMAP)m_bmps[0]);
else
m_ctrlPicture.SetBimap((HBITMAP)m_bmps[1]);
给出个大概思路。楼主您根据自己的需要修改嘛。希望能对您有所帮助。
2.OnBtnClick里这么写static bFlag = TRUE;if(bFlag)
{
myStatic.SetBitmap( ::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP1)) );
bFlag = FALSE;
}
else
{
myStatic.SetBitmap( ::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP2)) );
bFlag = TRUE;
}
HBITMAP hBmp;
BOOL done;void CDemoDlg::OnButton1()
{
// TODO: Add your control notification handler code here
if(done)
{
hBmp = (HBITMAP)LoadImage(NULL,"001.bmp",
IMAGE_BITMAP,100,100, LR_LOADFROMFILE);
m_bitmapTest.DeleteObject();
m_bitmapTest.Attach(hBmp);
m_pctrl.SetBitmap(hBmp);
done=FALSE;
}
else
{
hBmp = (HBITMAP)LoadImage(NULL,"003.bmp",
IMAGE_BITMAP,100,100, LR_LOADFROMFILE);
m_bitmapTest.DeleteObject();
m_bitmapTest.Attach(hBmp);
m_pctrl.SetBitmap(hBmp);
done=TRUE;
}
}
//其中“001.bmp”和“003.bmp”是你图片所在的路径。
上图是针对你提问的效果图代码的话,通过QQ加我传你不懂的可以问我QQ694271841