代码为什么不能在Dialog上显示一个A:
目的是要用O在Dialog上拼写一个A,
void CXxxDlg::OnButton1() 
{
CClientDC cdc(this);
CDC dcMemory;
CFont ft; dcMemory.CreateCompatibleDC(&cdc);
dcMemory.SetBkColor(RGB(255,255,255));
dcMemory.SetTextColor(RGB(0,0,255));
ft.CreatePointFont(120, "新宋体", NULL);
dcMemory.SelectObject(&ft);
dcMemory.TextOut(0,0, "A");

cdc.SetBkColor(RGB(255,255,255));
cdc.SetTextColor(RGB(0,0,255));
cdc.SelectObject(&ft);

COLORREF clrrf, chColor;
chColor = RGB(0,0,255);
for(int i = 0; i<14; i++)
{
for(int j =0; j<14; j++)
{
clrrf = dcMemory.GetPixel(i,j);
if (clrrf == chColor)
{
cdc.TextOut((i+1)*14, (j+1)*14, "O");
}
}
}
}

解决方案 »

  1.   

    这样试试看哦。
    创建一个Bitmap对象。设置到 dcMemory中去。
    用drawtext画出a来。
    bitblt到cdc中。
      

  2.   

    按钮刷掉了。你在onpaint里做。
      

  3.   

    多谢两位,但是我要的效果不是显示Bitmap,而是要把一个字符A显示为点阵的形式
      

  4.   

    改为这样:
    CRect rc;
    GetWindowRect(&rc);for(int i = 0; i<rc.Width()-1; i++)
    {
    for(int j =0; j<rc.Height()-1; j++)
    {
    clrrf = dcMemory.GetPixel(i,j);
    if (clrrf == chColor)
    {
    cdc.TextOut((i+1), (j+1), "O");
    }Invalidate();