我从数据库中读取一副 位图,然后在一个 非模态对话框 的OnPaint函数中显示出来但是,此非模态对话框最小化后,位图就消失了 ,咋办啊,困扰我好久了~~~~
解决方案 »
- win32应用程序中怎样让第一个线程结束再起第二个线程?
- 作为一名计算机专业的本科二年级的学生,我想成为VC++方面的高手,应该看哪些书,再就是看这些书的顺序是什么。
- VC修改二进制文件字符并保存
- 关于管道的小小问题
- 如何让鼠标的移动方向相反?
- 关于PropertySheet的问题,结帐!
- 如何在向导生成的用户界面中添加自己的东西?
- 兄弟們啊,遇到到上怪問題了,關于winsock2.h的
- 我想在内存中创建一个Bitmap,与一个硬盘上的制定文件完全一样,请教!
- 关于读取网卡号的新问题
- windows平台下利用WinPcap保存cap文件问题
- 用CSplitterWnd::CreateView创建的视图如何获得其指针?
m_hPhotoBitmap是我从数据库里读出来的HBITMAPDrawCoursePhoto(int x, int y, CDC *pDC)
{
if(!m_hPhotoBitmap) return;
HBITMAP OldBitmap;
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
OldBitmap=(HBITMAP)MemDC.SelectObject(m_hPhotoBitmap);
CBitmap m_bitmap;
m_bitmap.Attach(m_hPhotoBitmap);
BITMAP bitmap;
m_bitmap.GetBitmap(&bitmap);
pDC->StretchBlt(x,y,100,100,&MemDC,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
MemDC.SelectObject(OldBitmap);
}void CDlgCourseShow::OnPaint()
{
CPaintDC dc(this); // device context for painting
DrawCoursePhoto(10,30,&dc);
}
感觉你的OnPaint函数根本没起作用
void Dlg1::OnPaint()
{
CPaintDC dc(this);
CDC memDC;
memDC.CreateCompatibleDC(&dc);
CBitmap m_bmp;
m_bmp.LoadBitmap(IDB_BITMAP1); //位图ID
memDC.SelectObject(&m_bmp);
CRect rc;
GetClientRect(&rc);
dc.BitBlt(0,0,rc.Width(),rc.Height(),&memDC,0,0,SRCCOPY);
}
OldBitmap=(HBITMAP)MemDC.SelectObject(m_hPhotoBitmap); 不成功
采取的方法是 添加成员变量 CBitmap 和BITMAP;
在执行Opaint之前 得到位图对象,以及对象信息,就可以了小弟 第一次发帖,谢谢各位