我的問題是: 在選擇了一個阿爾法位圖到內存DC後,然後使用DrawText函數,但文本無法顯示。GDI,關於阿爾法位圖
代碼如下:
CDC memDC;
memDC.CreateCompatibleDC(&dc);
memBitmap.CreateCompatibleBitmap(&dc,64,100);
CBitmap *oldmemBitmap=(CBitmap*)memDC.SelectObject(&memBitmap);
CDC memDC1;
memDC1.CreateCompatibleDC(&dc);
//m_bitmap has alpha channel 64*64
CBitmap *oldmemBitmap1=(CBitmap*)memDC1.SelectObject(&m_bitmap);
memDC.BitBlt(0, 0, 64, 64, &memDC1, 0, 0, SRCCOPY);
CString str = _T("TEST");
memDC.DrawText(str,str.GetLength(),CRect(0,64,64,36),DT_CENTER|DT_WORDBREAK|DT_NOCLIP);
memDC.SelectObject(oldmemBitmap);
BITMAP bmpData;
memBitmap.GetBitmap(&bmpData);
CImageList imageList;
imageList.Create(bmpData.bmWidth, bmpData.bmHeight, ILC_COLOR32|ILC_MASK, 0, 1);
imageList.Add(&memBitmap, RGB(0, 0, 0));
POINT pt = {0, 0};
imageList.Draw(&dc, 0, pt, ILD_NORMAL);
的m_bitmap可以正常顯示,但 「TEST」 字符串不能。當我評論memDC.BitBlt(...)時,可以顯示「TEST」字符串。爲什麼?
謝謝您的詳細回覆。我試圖通過SetTextColor函數來修改文本顏色,但仍然不起作用。而我使用其他CDC的成員函數,如memDC.FillSoildRect,它們也沒有效果。 – user2567671