|
求助:在HDC设备上画文字时为什么报183错?程序如下:
[复制链接]
在自己的类中建立一个兼容HDC设备,准备把文字绘制在上面,需要时复制到当前的窗口中,但在上面绘图没问题,写文字时报183错(当文件已存在时,无法创建该文件。 ),为什么?程序片断如下:
说明:hdc是当前窗口传下来的HDC,m_hdc是自己类中的HDC,m_hbitmap是自己类中的HBITMAP,开始都是NULL
m_hdc = CreateCompatibleDC(hdc);
m_hbitmap = CreateCompatibleBitmap(hdc, nWidth, nHeight);
HBITMAP hbitmapOld = (HBITMAP)SelectObject(m_hdc, m_hbitmap);
DeleteObject(hbitmapOld);
BITMAP bmp;
GetObject(m_hbitmap, sizeof(BITMAP), &bmp);
CRect rect(0,0,nWidth, nHeight);
HBRUSH brush = CreateSolidBrush(BkColor);
FillRect(m_hdc, &rect, brush);
DeleteObject(brush);
SelectObject(m_hdc, m_Font);
SetTextColor(m_hdc, txtColor);
::SetBkMode(m_hdc, TRANSPARENT);
int g = DrawText(m_hdc, str, str.GetLength(),&rect, DT_LEFT );//| DT_WORDBREAK);//DT_NOPREFIX |
DWORD dw = GetLastError();
LineTo(m_hdc, 0, 0);
LineTo(m_hdc, nWidth, 200);
运行跟踪后,g为零,dw错误码是183, 贴到当前窗口后,背景BkColor及画线没问题,文字不能显示,哪位大虾知道为什么吗?
|
|