如何更改字体颜色,

heater   2009-12-25 10:19 楼主
[code]
HBRUSH CFileoperationDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);       

        if (pWnd-> GetDlgCtrlID()==IDC_OPEN)
        {
        pDC-> SetTextColor(RGB(255,0,0)); //设置字体颜色
        pDC-> SetBkMode(TRANSPARENT); //设置字体背景为透明
        // TODO: Return a different brush if the default is not desired
        return (HBRUSH)::GetStockObject(BLACK_BRUSH); // 设置背景色
        }
        // TODO: Return a different brush if the default is not desired
        return hbr;
}
[code]
为什么我重载了 这个函数却无法改变按钮控件中字体的颜色,但是可以修改静态文本框的颜色。 只要吧IDC_OPEN改为静态文本框的ID,就可以。

回复评论 (7)

代码没问题, 是不是控件ID有问题.
点赞  2009-12-25 10:32
控件ID没有问题
点赞  2009-12-25 11:03
我测试了 代码没问题的...
点赞  2009-12-25 11:13
没问题
点赞  2009-12-25 11:19
o,我的怎么又问题
点赞  2009-12-25 12:09
用修改對象的sendmessage試試
点赞  2009-12-25 12:31
你试试win32写写看。在控件创建的时候例如case WM_CTLCOLORSTATIC里SetTextColor,然后响应一个WM_SETFONT定义下字体。
我win32写的没问题。
点赞  2009-12-25 12:42
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复