殇痕TT 2016-06-11 11:44 采纳率: 100%
浏览 1290
已采纳

win32api在窗口中输出字,为什么背后总是带白色的背景

图片说明
就是你输了这一段背后的这一段的白色背景
代码如下:
void g_eat_p(HDC hdc, RECT rect)
{
HFONT hf;
char lost[]="你输了!";
hf = CreateFont((rect.top+rect.bottom)/10, 0, 0, 0, 400, 0, 0, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH|FF_DONTCARE, "字体");

for(int k=0; k<4; k++)
{
    if(g[k].weak==0 && g[k].life==1 && (( (g[k].x+16)/16==(p.x+16)/16 && (g[k].y+16)/16==(p.y+16)/16 ) || 
        ( (g[k].x-p.x)*(g[k].x-p.x)+(g[k].y-p.y)*(g[k].y-p.y)<=p.speed*p.speed)) )//假如鬼吃了吃豆人
    {
        SelectObject(hdc, hf);
        SetTextColor(hdc,RGB(255,0,0));
        TextOut(hdc, (rect.left+rect.right)/2, (rect.top+rect.bottom)/2, lost, strlen(lost));
        DeleteObject(hf);
        stop=1;
        break;
    }
}

}

  • 写回答

2条回答 默认 最新

  • threenewbee 2016-06-11 14:30
    关注

    SetBkMode(hdc,TRANSPARENT); //加上
    TextOut(hdc, (rect.left+rect.right)/2, (rect.top+rect.bottom)/2, lost, strlen(lost));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?