一 字体设置比较简单~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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为该控件的控件变量 如果没事先设置 可以使用
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;
}
但这样会有问题 需要强制刷新
一~~~给你的按钮关联一个控件变量 比如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());