vc 怎么设置一个编辑框的字体的大小或者颜色
一个文本编辑框中,我给他关联的变量时string类型,变量名为m_result我已经给它一个字符了“fail”判断当这个文本编辑框中的字符为”fail“时,这个编辑框的背...
一个文本编辑框中,我给他关联的变量时string类型,变量名为m_result
我已经给它一个字符了 “fail”
判断当这个文本编辑框中的字符为”fail“时,这个编辑框的背景颜色设为红色
怎么设置 展开
我已经给它一个字符了 “fail”
判断当这个文本编辑框中的字符为”fail“时,这个编辑框的背景颜色设为红色
怎么设置 展开
2个回答
展开全部
调用字体对话框,来改变编辑框的字体和颜色
1.添加一个编辑框 ID为 IDC_EDIT1
2.为编辑框添加变量 CEdit m_edit
3.添加一个按钮触发该事件。
void CTeTDlg::OnButton1() //添加一个按钮
{
// TODO: Add your control notification handler code here
//获得控件的当前字体
LOGFONT lf;
GetDlgItem(IDC_EDIT1)->GetFont()->GetLogFont(&lf);//IDC_EDIT1为编辑框ID
//使用按钮的当前字体初始化字体对话框
CFontDialog dlgFontDlg(&lf);
//显示字体选择对话框
if (dlgFontDlg.DoModal() == IDOK)
{
//如果用户在字体选择对话框中单击了“确定”按钮
//则将按钮ID_BUTTON_DEMODE的标题文本字体设置为所选定的字体
static CFont font;
color = dlgFontDlg.GetColor(); //获得选择的颜色 color为COLORREF类型 在.h文件中声明 (设置颜色)
m_edit.SetFocus(); //m_edit 为编辑框的控件变量
dlgFontDlg.GetCurrentFont(&lf); //获取当前的字体
font.DeleteObject(); //删除字体
font.CreateFontIndirect(&lf); //新建
GetDlgItem(IDC_EDIT1)->SetFont(&font);//设置为新的字体
}
}
展开全部
这是改变编辑框背景色的例子:
HBRUSH CDlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_EDIT)
{
pDC->SetBkMode(TRANSPARENT);//设置文字背景透明(注意区分文字背景和窗口背景)
pDC->SetBkColor(BkColor); //设置文字背景,如果设置文字背景透明则这一句不起作用
pWnd->GetClientRect(rcClientRect);
CBrush br1(BkColor);//这里BkColor就是编辑框背景色,我在别的地方定义了BkColor并设置这
//个值
pDC->FillRect(rcClientRect,&br1););//通过填充的方式改变编辑框背景色
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
HBRUSH CDlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_EDIT)
{
pDC->SetBkMode(TRANSPARENT);//设置文字背景透明(注意区分文字背景和窗口背景)
pDC->SetBkColor(BkColor); //设置文字背景,如果设置文字背景透明则这一句不起作用
pWnd->GetClientRect(rcClientRect);
CBrush br1(BkColor);//这里BkColor就是编辑框背景色,我在别的地方定义了BkColor并设置这
//个值
pDC->FillRect(rcClientRect,&br1););//通过填充的方式改变编辑框背景色
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
追问
我是要在它的字符串是“fail”是才改变我该怎么写呢??
帮帮我啊ID号是IDC_RESULT,对应的变量是m_result
就是在m_result=“fail”时,这个对应的控件背景颜色设为红色
追答
这是改变编辑框背景色的例子:
HBRUSH CDlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_EDIT)
{
LONG wndID=::GetWindowLong(pWnd->GetSafeHwnd(),GWL_ID);//获取窗口ID if(wndID==IDC_RESULT) {CString EditBoxTxt; pWnd->GetWindowText(EditBoxTxt); if(EditBoxTxt===“fail") { pDC->SetBkMode(TRANSPARENT);//设置文字背景透明(注意区分文字背景和窗口背景)
pDC->SetBkColor(BkColor); //设置文字背景,如果设置文字背景透明则这一句不起作用
pWnd->GetClientRect(rcClientRect);
CBrush br1(BkColor);//这里BkColor就是编辑框背景色,我在别的地方定义了BkColor并设置这
//个值
pDC->FillRect(rcClientRect,&br1);//通过填充的方式改变编辑框背景色 } }
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询