int a, b, c,x,y,y1,x1,x2;
CString str,str1,str2;
CString astr;
CClientDC dc(this);
CRect rectClient;
GetClientRect(rectClient);
CBitmap bmp;
GetWindowRect(&rectClient);
bmp.LoadBitmapW(IDB_BITMAP_BACKGROUND);//IDB_BITMAP_BACKGROUND为背景图片
bmp.CreateCompatibleBitmap(&dc,GetSystemMetrics(SM_CXSCREEN)*2,GetSystemMetrics(SM_CYSCREEN)*2);
CDC dcBmp;
dcBmp.CreateCompatibleDC(&dc);
CBitmap* pOldBmp = dcBmp.SelectObject(&bmp);
TEXTMETRIC tm;
dcBmp.GetTextMetrics(&tm);
a = 255; b = 0; c = 0;
dcBmp.SetTextColor(RGB(a, b, c));
CFont font;
VERIFY(font.CreatePointFont(400, _T("黑体"), &dcBmp));//创建字体 Arial格式 400为字高
dcBmp.SelectObject(&font); //选择该字体进入PDC
dcBmp.SetTextAlign( TA_BASELINE | TA_CENTER );
dcBmp.SetBkMode(TRANSPARENT);
x=rectClient.Width()/2;
y=rectClient.Height()*2/16;
str=_T("谢谢");
TCHAR * t = str.GetBuffer();
dcBmp.TextOutW(x,y,t);
dc.BitBlt(0,0,GetSystemMetrics(SM_CXSCREEN)*2,GetSystemMetrics(SM_CYSCREEN)*2, &dcBmp, 0,0,SRCCOPY); //将位图画到客户区上
dcBmp.SelectObject(pOldBmp);现在程序运行到 bmp.LoadBitmapW(IDB_BITMAP_BACKGROUND);之后再运行bmp.CreateCompatibleBitmap(&dc,GetSystemMetrics(SM_CXSCREEN)*2,GetSystemMetrics(SM_CYSCREEN)*2);就会报错“Debug Assertion Failed!" File:f:\ftm\vctools\vc7libs\ship\atlmfc\src\mfc\wingdi.cpp Line:1157 这个问题都困扰我好几天了。麻烦哪位大侠帮小弟解决一下。在此先谢了。
CString str,str1,str2;
CString astr;
CClientDC dc(this);
CRect rectClient;
GetClientRect(rectClient);
CBitmap bmp;
GetWindowRect(&rectClient);
bmp.LoadBitmapW(IDB_BITMAP_BACKGROUND);//IDB_BITMAP_BACKGROUND为背景图片
bmp.CreateCompatibleBitmap(&dc,GetSystemMetrics(SM_CXSCREEN)*2,GetSystemMetrics(SM_CYSCREEN)*2);
CDC dcBmp;
dcBmp.CreateCompatibleDC(&dc);
CBitmap* pOldBmp = dcBmp.SelectObject(&bmp);
TEXTMETRIC tm;
dcBmp.GetTextMetrics(&tm);
a = 255; b = 0; c = 0;
dcBmp.SetTextColor(RGB(a, b, c));
CFont font;
VERIFY(font.CreatePointFont(400, _T("黑体"), &dcBmp));//创建字体 Arial格式 400为字高
dcBmp.SelectObject(&font); //选择该字体进入PDC
dcBmp.SetTextAlign( TA_BASELINE | TA_CENTER );
dcBmp.SetBkMode(TRANSPARENT);
x=rectClient.Width()/2;
y=rectClient.Height()*2/16;
str=_T("谢谢");
TCHAR * t = str.GetBuffer();
dcBmp.TextOutW(x,y,t);
dc.BitBlt(0,0,GetSystemMetrics(SM_CXSCREEN)*2,GetSystemMetrics(SM_CYSCREEN)*2, &dcBmp, 0,0,SRCCOPY); //将位图画到客户区上
dcBmp.SelectObject(pOldBmp);现在程序运行到 bmp.LoadBitmapW(IDB_BITMAP_BACKGROUND);之后再运行bmp.CreateCompatibleBitmap(&dc,GetSystemMetrics(SM_CXSCREEN)*2,GetSystemMetrics(SM_CYSCREEN)*2);就会报错“Debug Assertion Failed!" File:f:\ftm\vctools\vc7libs\ship\atlmfc\src\mfc\wingdi.cpp Line:1157 这个问题都困扰我好几天了。麻烦哪位大侠帮小弟解决一下。在此先谢了。
CPaintDC dc(this);
CDC memdc;memdc.CreateCompatibleDC(&dc);
bmp1.CreateCompatibleBitmap(&memdc,20,20);bmp1.CreateCompatibleBitmap(&memdc,20,20);这句放在dcBmp.CreateCompatibleDC(&dc);之后试试。
LoadBitmap以后,你的HBITMAP就不为NULL了,所以后面的CreateCompatibleBitmap就错了。