动态创建CEdit

来源:互联网 发布:实用的网络运营方案 编辑:程序博客网 时间:2024/05/16 07:37

1. 动态创建Cedit与动态创建CStatic类似,缺省字体都很粗,可以使用 

     LOGFONT lf;


        ::GetObject((HFONT)GetStockObject(DEFAULT_GUI_FONT),sizeof(lf),&lf);
        m_font.CreateFontIndirect(&lf);
        

        m_editContent.SetFont(&m_font);

2. 动态创建的CEdit背景默认是白色的

如果要改变其背景,可以响应父窗口对话框的OnCtlColor函数,在里面设置画刷改变背景色

    if (pWnd->GetDlgCtrlID() == CEDITID)
    {
        pDC->SetBkMode(TRANSPARENT);

        HBRUSH hbr = (HBRUSH)GetStockObject(NULL_BRUSH);
        return hbr;
    }

其中CEDITID定义为 #define CEDITID 8080    // 动态创建的CEdit的ID

当然创建CEdit的时候,ID也要指定为CEDITID

但是注意: 由于NULL_BRUSH会导致窗口不重绘,在滚动条滚动的时候,显示内容就逐渐混乱了,所以此处不能用NULL_BRUSH,当然可以用其它BRUSH.

如果要使用对话框的背景颜色,可以用    HBRUSH hbr = (HBRUSH)CreateSolidBrush(RGB(238,238,244)); 其中RGB(238,238,244)是用QQ截图看的分辨率,嘿嘿



原创粉丝点击