MFC~~~~~~edit_control 和 静态文本框设置透明和字体设置

一  字体设置比较简单~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1 。在 testdlg.h(假设工程名字为test)中 设置一个 public 的 CFont font;

2 。在testdlg.cpp中的OnInitDialog函数最后面加入

font.CreateFont(25,0,0,0,100,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,

CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,"微软雅黑");

 参数说明:
 nHeight         :字体高度.>0:字体的高度值;=0:字体采用缺省直.<0:此值的绝对
值为高度.
 nWidth          :字体宽度.
 nEscapement     :文本行的倾斜度.
 nOrientation    :字符基线的倾斜度.
 nWeight         :字体的粗细.如下:
    .FW_DONTCARE
    .FW_THIN
    .FW_EXTRALIGHT
     .....
 bItalic         :字体是否为斜体
 bUnderline      :字体是否带下划线
 cStrikeOut      :字体是否带删除线
 nCharSet        :字体的字符集
    .ANSI_CHARSET
    .DEFAULT_CHARSET
    .SYMBOL_CHARSET
     ......
 nOutPrecision   :字符的输出精度
 nClipPrecision :字符裁剪的精度
 nQuality        :字符的输出质量
 nPitchAndFamily :字符间距和字体族(低位说明间距,高位说明字符族)
 lpszFacename    :字体名称 


m_edit.SetFont(&font,FALSE);

其中m_edit为该控件的控件变量 如果没事先设置 可以使用

 CEdit *m_Edit=(CEdit *)GetDlgItem(IDC_EDIT1);
 m_Edit->SetFont(&m_Font,FALSE); 

二 透明设置~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

有时候会想让控件透明以便美化

其中 edit_control设置透明可以如下

在testdlg中加入OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)的消息响应

HBRUSH CtransparentDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hBrush
= CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

if(nCtlColor == CTLCOLOR_STATIC)
{
pDC
->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
return hBrush;
}

但这样会有问题 需要强制刷新  

 InvalidateRect(EDIT窗口句柄, NULL, FALSE); 
所以我直接用别人写好的类啦!~~~~~~~~~~~~~~~~
附加如下 
我擦,找不到上传附件的地方啊 先继续写
 file.rar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
将里面的EditTrans.h EditTrans.pp 分别加入工程 
替换MFC的原来的类有如下方法 

一~~~给你的按钮关联一个控件变量 比如CButton m_ctlButton;

然后在.h文件中将CButton换成CMyButton


二~~~CMyButton m_btnMyButton;
然后在对话框的OnInitDialog (或任何适当的地方) 中调用:
m_btnMyButton.SubclassDlgItem(IDC_BUTTON1, this);
假设你已经有了一个窗口的指针,或者你工作在一个CView或其他CWnd派生类中里面的控件被动态的创建,或者你不想使用SubclassDlgItem函数,那么你可以使用下面的方法:
CWnd* pWnd = GetDlgItem(IDC_BUTTON1); // or use some other method to get
// a pointer to the window you wish
// to subclass
ASSERT( pWnd && pWnd->GetSafeHwnd() );
m_btnMyButton.SubclassWindow(pWnd->GetSafeHwnd());

效果图如下 
原文地址:https://www.cnblogs.com/xd-jinjian/p/3378823.html