做了一个能浏览图片资源的东西://PhotosDlg.h
//...
class CPhotosDlg
{
public:
CPhotoDlg(CWnd *pParent=NULL);
UINT m_nIndex;//记录图片编号
//...
};
//...
//PhotosDlg.cpp
//...
void CPhotosDlg::SetPicture(UINT uIDBitmap)
{
CDC *pDC,memDC;
CRect rect;
CBitmap bitmap,*bmp;
pDC=GetDC();//获取设备上下文
memDC.CreateCompatibleDC(pDC);//创建兼容设备上下文
GetClientRect(rect);//获取客户区窗口大小
bitmap.LoadBitmap(uIDBitmap);//读取位图
bmp=memDC.SelectObject(&bitmap);//将位图选入设备上下文
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,SRCCOPY);//将位图复制到界面上
if(bmp)memDC.SelectObject(bmp);
}
void CPhotosDlg::OnPaint()
{
//...
AddPicture(IDB_BITMAP1);
}
void CPhotosDlg::OnBtnNext()
{
if(++m_nIndex==2)m_Next.EnableWindow(FALSE);//如果到头了就不能继续翻
m_Prev.EnableWindow();
AddPicture(IDB_BITMAP1+m_nIndex);
}
void CPhotosDlg::OnBtnPrev()
{
if(--m_nIndex==0)m_Prev.EnableWindow(FALSE);
m_Next.EnableWindow();
AddPicture(IDB_BITMAP1+m_nIndex);
}结果发现,当翻得时候,图片会覆盖住按钮,怎么才能让他不覆盖住?
//...
class CPhotosDlg
{
public:
CPhotoDlg(CWnd *pParent=NULL);
UINT m_nIndex;//记录图片编号
//...
};
//...
//PhotosDlg.cpp
//...
void CPhotosDlg::SetPicture(UINT uIDBitmap)
{
CDC *pDC,memDC;
CRect rect;
CBitmap bitmap,*bmp;
pDC=GetDC();//获取设备上下文
memDC.CreateCompatibleDC(pDC);//创建兼容设备上下文
GetClientRect(rect);//获取客户区窗口大小
bitmap.LoadBitmap(uIDBitmap);//读取位图
bmp=memDC.SelectObject(&bitmap);//将位图选入设备上下文
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,SRCCOPY);//将位图复制到界面上
if(bmp)memDC.SelectObject(bmp);
}
void CPhotosDlg::OnPaint()
{
//...
AddPicture(IDB_BITMAP1);
}
void CPhotosDlg::OnBtnNext()
{
if(++m_nIndex==2)m_Next.EnableWindow(FALSE);//如果到头了就不能继续翻
m_Prev.EnableWindow();
AddPicture(IDB_BITMAP1+m_nIndex);
}
void CPhotosDlg::OnBtnPrev()
{
if(--m_nIndex==0)m_Prev.EnableWindow(FALSE);
m_Next.EnableWindow();
AddPicture(IDB_BITMAP1+m_nIndex);
}结果发现,当翻得时候,图片会覆盖住按钮,怎么才能让他不覆盖住?
解决方案 »
- 昨晚看电视,见到一软件,想和大家讨论一下
- ??? 子类化IE8工具栏 ???
- 用ADO连接的MySQL,客户端自己怎么知道用的是什么IP连接的服务器
- 一个很菜的问题
- 关于用directshow开发的一个视频帧捕获问题
- 为什么老是出同样的错? Visual C++ 6.0
- 我在.Net 2003中编写Pro*C程序,扩展名为.pc,这样的话.Net 2003似乎就不把该文件当作cpp文件处理了,连函数的智能参数显示功能都不能使
- 怎样在我的程序中用google的搜索引擎
- 多文档窗口如何不用hook截获f10?急!
- 用什么快速的方法可以自我检测一下自己的c++水平?
- mfc socket问题, 一按发送cpu就100% 怎么回事呢 老想不明白,求高人解答?
- 100分,求助~
ID号 对应变量 对应消息 消息函数
IDC_BTN_PREV CButton m_Prev BN_CLICKED OnBtnPrev
IDC_BTN_NEXT CButton m_Next BN_CLICKED OnBtnNext
class CPhotosDlg
没有父类?2.
void CPhotosDlg::OnPaint()
{
//...
AddPicture(IDB_BITMAP1);
}为什么不是贴的AddPic代码 而是SetPic的代码3.
OnEraseBackGround()
{
return TRUE;
}