怎么设置edit控件中的字体
如何设置edit控件中的字体
m_Ckeyround与edit控件相关联,为CEdit类型
BOOL CMultiliteralDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CFont font;
font.CreateFont(20,0,0,0,700,FALSE,FALSE,0,
ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,DEFAULT_PITCH | FF_ROMAN, "Courier New ");
m_Ckeyround.SetFont(&myfont);
m_Ckeyround.SetWindowText( "abcde\r\n\
f g h i k\r\n\
l m n o p\r\n\
q r s t u\r\n\
v w x y z ");
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
想在edit控件中输出等宽的五行五列的
( "a b c d e\r\n\
f g h i k\r\n\
l m n o p\r\n\
q r s t u\r\n\
v w x y z ");
上面的代码为什么不行呢?
------解决方案--------------------
CFont font ;定义的是一个字体资源
如果定义成局部变量的话,当OnInitDialog结束后,它的得生命周期也就结束了
创建的字体资源也就不再有效了
先这种问题出现地方很多比如创建一个按钮你如果将按钮对象定义成一个局部变量
运行后你是看不到你的按钮的,因为它已被析构了
m_Ckeyround与edit控件相关联,为CEdit类型
BOOL CMultiliteralDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CFont font;
font.CreateFont(20,0,0,0,700,FALSE,FALSE,0,
ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,DEFAULT_PITCH | FF_ROMAN, "Courier New ");
m_Ckeyround.SetFont(&myfont);
m_Ckeyround.SetWindowText( "abcde\r\n\
f g h i k\r\n\
l m n o p\r\n\
q r s t u\r\n\
v w x y z ");
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
想在edit控件中输出等宽的五行五列的
( "a b c d e\r\n\
f g h i k\r\n\
l m n o p\r\n\
q r s t u\r\n\
v w x y z ");
上面的代码为什么不行呢?
------解决方案--------------------
CFont font ;定义的是一个字体资源
如果定义成局部变量的话,当OnInitDialog结束后,它的得生命周期也就结束了
创建的字体资源也就不再有效了
先这种问题出现地方很多比如创建一个按钮你如果将按钮对象定义成一个局部变量
运行后你是看不到你的按钮的,因为它已被析构了