关于一个小“相册”

正在无聊中 2011-10-03 06:42:54
做了一个能浏览图片资源的东西:

//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);
}

结果发现,当翻得时候,图片会覆盖住按钮,怎么才能让他不覆盖住?
...全文
87 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
正在无聊中 2011-10-07
  • 打赏
  • 举报
回复
呃。。可能是写错了
「已注销」 2011-10-04
  • 打赏
  • 举报
回复
1.
class CPhotosDlg
没有父类?

2.
void CPhotosDlg::OnPaint()
{
//...
AddPicture(IDB_BITMAP1);
}

为什么不是贴的AddPic代码 而是SetPic的代码

3.
OnEraseBackGround()
{
return TRUE;
}
正在无聊中 2011-10-03
  • 打赏
  • 举报
回复
忘了说了,按钮有两个:
ID号 对应变量 对应消息 消息函数
IDC_BTN_PREV CButton m_Prev BN_CLICKED OnBtnPrev
IDC_BTN_NEXT CButton m_Next BN_CLICKED OnBtnNext

15,979

社区成员

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

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