如何让单行edit控件的文字垂直居中? 环境:VC8, SDK (我不会MFC或.NET)edit控件的第一行文字是紧靠窗口上沿的。这在单行edit控件上显的尤为难看,用什么方法让其能垂直居中呢?注明下我求的是垂直居中方法,而非水平居中。另外我不想把控件高度减的和文字一样高。请大家赐教!尽可能给出代码,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Edit 标准控件没这个功能, static 才有垂直居中, 能否换用static ? 单行不可能垂直居中的。单行的高度只是比字符的高度多一点,就算你把它拉高了,它也是单行edit控件。你可以用多行,代替单行。 在设计CEdit控件时,右键点“属性”选“Styles”页面,有个组合下拉框“Align text”,一般是“Left”,把它选项设为“Centered”,就行了。 感谢各位回贴,小弟仍有疑问:一楼您好:换static我怎么输入并获取文字呢?二楼您好:我就是要单行,就像搜索网站的输入栏那样,多行我试过,先不说得子类化窗口过程以处理回车键,另外其文字距上边也就比单行编辑框多那么一两个像素而已,效果不理想。三楼您好:我求的是垂直居中方法,而非水平居中四楼您好:您代码是MFC下的吧,有没有API代码呢? 自绘使用 DrawText 函数,最后一个参数指明 DT_VCENTER 标记 edit 的相应函数可以通过SendMessage 函数消息是 EN_开头的一些消息,MSDN 应该有说明 感谢Joephia !他的代码我改成了API形式并获得成功!我的代码更简单,就是让文字距编辑框上沿有4个像素距离。当然可以多写几行代码以让这个值更灵活些。RECT rect ;GetClientRect(hwndEdit,rect);OffsetRect(&rect,0,4);SendMessage(hwndEdit,EM_SETRECT,0,(LPARAM)&rect);呵呵,真没想到这么简单!以前在网上搜过也没找到一个解决方法,更有人称要完全自绘才行,真是吓坏我也^^ ,再次感谢各位的回贴,感谢Joephia !结贴散分,网友还有什么问题意见就请联系我QQ吧:184263203 。 求jpg转jpeg2000 求教,如何在windows service里边创建系统托盘? 输入问题? 简单问题 关于CComQIPtr 怎么让无模式对话框不“挡住”主界面? VC使用疑问一二三 编辑框问题,各位仁兄,进来看看,不胜感激!! 如何将往IP地址控件上输入的内容转变为字符串形式? 【讨论】IM服务器结构设计 请教一个关于MFC中如何移动对话框的问题 Combo Box和Extended Combo Box的区别 在线等
一楼您好:换static我怎么输入并获取文字呢?
二楼您好:我就是要单行,就像搜索网站的输入栏那样,多行我试过,先不说得子类化窗口过程以处理回车键,另外其文字距上边也就比单行编辑框多那么一两个像素而已,效果不理想。三楼您好:我求的是垂直居中方法,而非水平居中四楼您好:您代码是MFC下的吧,有没有API代码呢?
edit 的相应函数可以通过
SendMessage 函数消息是 EN_开头的一些消息,MSDN 应该有说明
OffsetRect(&rect,0,4);
SendMessage(hwndEdit,EM_SETRECT,0,(LPARAM)&rect);呵呵,真没想到这么简单!以前在网上搜过也没找到一个解决方法,更有人称要完全自绘才行,真是吓坏我也^^ ,再次感谢各位的回贴,感谢Joephia !结贴散分,网友还有什么问题意见就请联系我QQ吧:184263203 。