对话框背景图丢失了,全部恢复灰色,来着有分
对话框背景贴图:
void C.....rDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
// SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this); //创建一个设备描述表
HBITMAP hbitmap = //创建一个HBITMAP变量
::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_MAIN));
HDC hMemDC = ::CreateCompatibleDC(NULL); //创建一个内存设备描述表
SelectObject(hMemDC, hbitmap);
::StretchBlt(dc.m_hDC,0,0,1024,1024,hMemDC,0,0,1024,1024,SRCCOPY);
::DeleteDC(hMemDC);
::DeleteObject(hbitmap);
CDialog::OnPaint();
}
}
另外所有的按纽都用:
CBitmapButton类自绘贴图。
程序执行后,一切正常。这是个播放器程序,同时播放多个视频文件的可以。
问题:运行后并开启录象,播放正常。播放停止后,没有关闭程序,等一段时间,大约1小时,把界面切出来一看,所有的图的掉了,全部原来对话框的灰色!
于是程序启动后不开播放直接放在那里不管测试,一段时间后一样的结果。看内存,cpu都正常。
大家有没有遇到过啊?为什么?