问题:我在一个对话框程序上放置了一个RichEditBox控件,想从一个文本文件里面读取出所有字符显示出来。
该对话框在一初始化的时候自动全屏,RichEditBox控件的大小也随对话框大小自动调整。
目前我已经取到RichEditBox控件的长宽(像素点),同时将从文件准中读取的所有字符赋值给字符数组并去掉所有的回车换行。我想达到的效果是:计算出当前RichEditBox控件每行能显示的字符个数、能显示的字符行数。但不知道如何获取RichEditBox控件中字符的字符的宽度和高度,所以请高手帮忙如何获取(获得字符的宽度、高度像素点,这样用控件的宽度、高度相除就可以得出可以显示的字符个数了)。另外,我想在手动输入字符串到RichEditBox控件中到最后一个字符时,自动回车换行到下一行。请问如何实现呢,谢谢
该对话框在一初始化的时候自动全屏,RichEditBox控件的大小也随对话框大小自动调整。
目前我已经取到RichEditBox控件的长宽(像素点),同时将从文件准中读取的所有字符赋值给字符数组并去掉所有的回车换行。我想达到的效果是:计算出当前RichEditBox控件每行能显示的字符个数、能显示的字符行数。但不知道如何获取RichEditBox控件中字符的字符的宽度和高度,所以请高手帮忙如何获取(获得字符的宽度、高度像素点,这样用控件的宽度、高度相除就可以得出可以显示的字符个数了)。另外,我想在手动输入字符串到RichEditBox控件中到最后一个字符时,自动回车换行到下一行。请问如何实现呢,谢谢
解决方案 »
- 发现了个很搞笑的网站 散分
- 孙鑫第一课的问题
- Visual c++中Edit类中怎样输出数据
- 紧急求助:那位高手有NET BIOS协议的程序代码及相关资料,及相关网站?
- 介绍一下制作图标有那些软件!
- 求助钩子函数问题!分数不够可以再加
- .hlp文件的编译器和反编译器哪里有?
- ACM与DirectSound问题,高手们及有兴趣者请关注~~~
- 在单文档结构中怎么去掉标题栏得文档名?
- 急死了,能不能通过Internet访问一个连接Internet的局域网内的一台计算机上的MS SQL Server服务器?
- VC中两个类相互调用数据和函数的问题
- vs2005编译后的程序,在其它机子上出现"应用程序配置不正确"问题
HDC hdc, // 相关设备句柄
LPCTSTR lpString, // 字符串
int cbString, // 字符串的字符数(即长度)
LPSIZE lpSize // 用来接收字符串的尺寸
);
这个函数可以取得设备句柄上面一个字符的尺寸,以前在 Static 控件、列表框上面有用过,如果字符全半角或者是全部全角的到好办一点,碰到一些全角一些半角的,要搞死人,当时也没有好的解决方法,楼主解决了不要忘了总结一下....
e.g. 在对话框的OnInitDialog函数里面添加如下程序,就能实现自动换行。HDC hdc = ::GetDC(this->GetDlgItem(IDC_RICHEDIT21)->m_hWnd);
HWND hRE = this->GetDlgItem(IDC_RICHEDIT21)->m_hWnd;
::SendMessage(hRE, EM_SETTARGETDEVICE, (WPARAM)hdc, 400);