C++里MFC的静态文本文字会在输出位置出现一个白色的大方

怎么修改才能让它不挡住我的背景... 怎么修改才能让它不挡住我的背景 展开
 我来答
花花浪客
推荐于2016-08-02 · TA获得超过2069个赞
知道小有建树答主
回答量:792
采纳率:100%
帮助的人:712万
展开全部

没有太好的办法,只能自己新建一个类继承CStatic,然后响应WM_PAINT消息自己来绘制文本,在绘制文本的时候设置背景模式为透明模式。然后为你的这个静态文本框添加控制变量,变量类型就是你新建的这个类。绘制静态框文本大致代码如下,必要的时候自己再构建合适的字体:

void CMyStatic::OnPaint() 
{
    CPaintDC dc(this); // device context for painting
    
    RECT rcClient;
    GetClientRect(&rcClient);

    int nLen = ::GetWindowTextLength(m_hWnd);
    char *strTitle = new char[nLen + 1];
    ::GetWindowText(m_hWnd, strTitle, nLen + 1);

    dc.SetBkMode(TRANSPARENT);
    dc.DrawText(strTitle, nLen, &rcClient, DT_WORDBREAK | DT_LEFT);

    delete strTitle;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式