在对话框中插入的编辑框,不论编辑框有多大,其中的插入符和输入的字母、数字或文字的大小默认都是那么大,怎样可以设置插入符的大小和输入文字的大小呢?
我们首先看插入符大小的设置方法。
选中编辑框点击鼠标右键,选择ClassWizard,添加编辑框的EN_SETFOCUS消息。如图所示。
添加的OnSetfocusEdit1()函数如下:
void CTestDlg::OnSetfocusEdit1()
{
GetDlgItem(IDC_EDIT1)->CreateSolidCaret(1,85);
GetDlgItem(IDC_EDIT1)->ShowCaret();
}
根据编辑框的大小调整CreateSolidCaret的参数。运行效果如图。
插入符是变大了,但是输入的数字还是原先那么大,很不协调。现在我们就修改输入字符的大小。
为CTestDlg类添加CFont类型的变量m_font(私有的),并在其构造函数中初始化:
m_font.CreatePointFont(600,"华文新魏");
然后添加WM_CTLCOLOR消息的处理函数,代码如下:
HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(pWnd->GetDlgCtrlID()==IDC_EDIT1)
{
pDC->SelectObject(&m_font);
}
return hbr;
}
下一步为编辑框添加控件变量m_Edit1.最后,可以在OnSetfocusEdit1()函数中调用SetFont()函数,我们想要的效果就出来了。
修改后的OnSetfocusEdit1()函数:
void CTestDlg::OnSetfocusEdit1()
{
GetDlgItem(IDC_EDIT1)->CreateSolidCaret(1,85);
GetDlgItem(IDC_EDIT1)->ShowCaret();
m_Edit1.SetFont(&m_font);
}
最后的插入符的大小可能由字体的大小所决定。
本程序的下载地址:http://download.csdn.net/source/2371527
本文转载自:http://blog.csdn.net/zhixingzhe/article/details/5609064