您的位置:首页 > 其它

mfc编辑框输入垂直居中&字体调整&不采用password属性进行密码输入&vs2013中加载bitmap位图

2015-12-08 10:15 357 查看
第一部分:mfc编辑框输入垂直居中

处理前:编辑框光标靠上,不太美观


处理后:光标垂直居中


操作:

1)将编辑框属性中的Align Text 选择为Center

2)将编辑框属性中的Multiline设置为true

3)在OnInitDialog()函数中添加如下代码

//设置编辑框字体垂直居中
CRect rc = CRect(0, 0, 0, 0);
m_name.GetClientRect(&rc);      //用户名控件的客户区
CDC* pDC = m_name.GetDC();
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
int nFontHeight = tm.tmHeight + tm.tmExternalLeading;
int nMargin = (rc.Height() - nFontHeight) / 3;
rc.DeflateRect(0, nMargin);
m_name.SetRectNP(&rc);      //设置用户名编辑框垂直居中


其中m_name是编辑框关联的control型变量。

第二部分:mfc输入字体调整

先添加类成员变量:
CFont font;           //字体变量


然后在OnInitDialog()函数中添加

//修改字体大小和字体类型

font.CreatePointFont(120, _T("微软雅黑"));

m_name.SetFont(&font);


结果如第一部分所示,明显可知光标变大了。

第三部分:mfc不采用password属性进行密码输入

当编辑框修改为垂直居中的时候,编辑框属性中单行变多行,此时password属性失效。为了进行密码输入。此时可如下操作:

1). 单击编辑框右键,选择“添加时间处理程序”然后消息类型选择“EN_CHANGE”添加函数。

2). 在新添加的函数中添加如下代码:
GetDlgItem(IDC_EDIT_PWD)->GetWindowTextW(pwd);

pwd_show.Append(_T("*"));

GetDlgItem(IDC_EDIT_PWD)->SetWindowTextW(pwd_show);


3). 其中pwd和pwd_show均为CString类型,且在类成员变量声明的地方进行public声明。pwd存储输入的密码字符,pwd_show 将保持同pwd等长度的“*”在密码编辑框输入。

第三部分:vs2013中加载bitmap位图

– 百度的vs加载位图一般是先将bitmap图像拷贝到工程res中,然后在“资源视图“中单击右键选择”添加资源“,然后选择”Bitmap“-》”导入“,此时,发现预定的文件类型为”.bmp、 .dib 、.gif、.jpg“。然后发现我们预先拷贝的bitmap资源无法加载。

– 解决办法是将文件类型选择为”所有文件(.)“。可发现出了先拷贝过来的bitmap位图。

注: 上述解决办法,除第3部分是自己思考得出,其余均是总结百度优秀答案,仅供学习交流哈O(∩_∩)O!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: