MFC编程中Edit框的操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC编程中Edit框的操作相关的知识,希望对你有一定的参考价值。
我在Dialog中拖出一个Edit框框,希望通过它获取用户输入的信息,这个可以通过GetDlgItemText()实现,但是还有两个问题没能解决: 1.Edit框框中输入的文本的字体和大小怎么调整呢,我在Dialog的Properties中修改,结果把其他控件的字体什么的连带着一起改了。 2.我希望Eidt框框除了可以获取用户输入的信息,还能显示一些程序反馈的信息,比如,我点击了"浏览"按钮用户通过它给了程序一个文件路径,我希望这时候程序把这个获取到的路径在Eidt框框中显示出来。以上该如何实现呢? 谢谢各位了
参考技术A 问题一:更改Edit输入框中的字体步骤如下:
(1)、在OnInitDialog()函数中声明如下两个变量:CFont
*Font;
LOGFONT
lf;(前一个变量是一个字体类指针,后一个变量是一个字体信息结构体,这两个变量用于创建字体);
(2)、在OnInitDialog()函数中添加如下代码:
CFont
*Font;
LOGFONT
lf;
//第(1)步中已经添加
Font=new
CFont;
Font->CreatePointFont(120,(LPCTSTR)"隶书");
Font->GetLogFont(&lf);
//lf.lfUnderline=TRUE;
Font->DeleteObject();
Font->CreateFontIndirect(&lf);
((CEdit*)GetDlgItem(IDC_EDIT1))->SetFont(Font,true);
编译运行就可以了,IDC_EDIT1为编辑控件ID号;
更改编辑控件字体颜色步骤如下:
(1)、为对话框类添加WM_CTLCOLOR消息函数OnCtlColor();
(2)、在OnCtlColor()函数中添加代码后如下:
HBRUSH
CXcDlg::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->SetTextColor(RGB(255,0,0));
//文字颜色
pDC->SetBkColor(RGB(233,233,220));
//背景颜色
HBRUSH
b=CreateSolidBrush(RGB(233,233,220));//背景颜色
return
b;
//
TODO:
Return
a
different
brush
if
the
default
is
not
desired
return
hbr;
问题二:
在“浏览”按钮的消息函数中添加如下代码:
CString
StrFilter="文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||";
CFileDialog
Dlg(TRUE,NULL,NULL,NULL,StrFilter,this);
//A
if(Dlg.DoModal()==IDOK)
FilePath=Dlg.GetPathName();
UpdateData(false);
其中FilePath是与为编辑控件定义的变量,A行中第一个参数为true时显示打开对话框,为false时显示保存对话框
MFC编程 -- 编辑框随窗口改变大小
一、源代码
1、需要WM_SIZE消息
case WM_SIZE:
return 控件随窗口改变大小(hwndDlg,wParam,lParam);
2、实现代码
int 控件随窗口改变大小(HWND hDlg, WPARAM wParam, LPARAM lParam)
HWND 编辑框句柄 = GetDlgItem(hDlg, IDC_EDIT1);//返回编辑框的句柄
int x = LOWORD(lParam);//获取窗口右下角x坐标
int y = HIWORD(lParam);//获取窗口右下角y坐标
MoveWindow(编辑框句柄, 0, 0, x, y, true);//编辑框移动
return 0;
二、运行效果
欢迎关注编程有你公众号,每天学点编程知识
以上是关于MFC编程中Edit框的操作的主要内容,如果未能解决你的问题,请参考以下文章
VS2010-MFC(常用控件:编辑框Edit Control)