我在vs2005下建了个wince的mfc基于对话框的工程,想在对话框上显示背景图片
代码如下:BOOLCsljcxtDlg::OnInitDialog(){CDialog::OnInitDialog();CBitmapbmp;bmp.Attach(Loa...
代码如下:
BOOL CsljcxtDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CBitmap bmp;
bmp.Attach(LoadImageW(AfxGetInstanceHandle(),_T("资源文件//无标题t.bmp"),IMAGE_BITMAP,0,0,NULL));
m_brBk.CreatePatternBrush(&bmp);
bmp.DeleteObject();
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
}
void CsljcxtDlg::OnPaint()
{
CRect rect;
GetClientRect(&rect);
CDC *pDC=GetDC();
CDC memdc;
memdc.CreateCompatibleDC(pDC);
CBitmap bitmap;
//从资源中载入位图
bitmap.Attach(LoadImageW(AfxGetInstanceHandle(),_T("资源文件//无标题t.bmp"),IMAGE_BITMAP,0,0,NULL));
memdc.SelectObject(bitmap);
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&memdc,0,0,SRCCOPY);
}
wince中对话框卡住,显示不了 展开
BOOL CsljcxtDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CBitmap bmp;
bmp.Attach(LoadImageW(AfxGetInstanceHandle(),_T("资源文件//无标题t.bmp"),IMAGE_BITMAP,0,0,NULL));
m_brBk.CreatePatternBrush(&bmp);
bmp.DeleteObject();
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
}
void CsljcxtDlg::OnPaint()
{
CRect rect;
GetClientRect(&rect);
CDC *pDC=GetDC();
CDC memdc;
memdc.CreateCompatibleDC(pDC);
CBitmap bitmap;
//从资源中载入位图
bitmap.Attach(LoadImageW(AfxGetInstanceHandle(),_T("资源文件//无标题t.bmp"),IMAGE_BITMAP,0,0,NULL));
memdc.SelectObject(bitmap);
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&memdc,0,0,SRCCOPY);
}
wince中对话框卡住,显示不了 展开
2个回答
展开全部
把擦除背景那个函数的return 改成 return true;
其他显示图片的做法和xp里的一样
其他显示图片的做法和xp里的一样
追问
有没有代码啊 ,我新手啊,以前没做过这个
追答
void CAdDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialog::OnPaint()
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
CString strBMPPath = _T("ad.bmp");
bmpBackground.Attach(::SHLoadDIBitmap(strBMPPath));//动态加载
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
}
BOOL CAdDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
return TRUE;
}
来自:求助得到的回答
展开全部
追问
代码用来,wince中显示不出来,对话框卡住了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询