| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 818 人关注过本帖
标题:RichEdit控件 追加新行
取消只看楼主 加入收藏
smartdog
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-1-9
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
RichEdit控件 追加新行
各位前辈:

我用Win32 api 写了一个UI,使用RichEdit显示文本。

第一次添加文本时 SendMessage(hwndrich, EM_SETTEXTEX, (WPARAM)&st, (LPARAM)text);

之后再添加文本我想 换一行添加,但是不知道用什么方法了。

随着添加的行数增加,如何实现自动滚动,并且最先添加的自动向上滚动 ?


谢谢!
搜索更多相关主题的帖子: 如何 
2014-01-09 23:28
smartdog
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-1-9
收藏
得分:0 
我试了很多办法,总是不能解决。只能将工程上传了。

VS 2010工程,麻烦帮帮小弟
Exec.zip (8.77 KB)
2014-01-12 20:40
smartdog
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-1-9
收藏
得分:0 
我在MFC 和 Winform 中很方便的换行,直接在字串后增加 “\r\n”就行,但是在Win32API 中我还真找不到方法
2014-01-15 18:46
smartdog
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-1-9
收藏
得分:0 
参考七楼的代码,我修之后代码如下:

程序代码:
BOOL AppendTextToRich(TCHAR *text, int len)
{
    HWND hwndrich=GetDlgItem(hWnd, IDC_RICHEDIT2_LOG);      
    if (hwndrich != INVALID_HANDLE_VALUE)
    {
        int len = wcslen(text);
        int i = 0;
        do
        {
            SendMessage(hwndrich, WM_CHAR, text[i++], 0);
        } while (i < len);

        //自动滚动到最后一行
        SendMessage(hwndrich, WM_VSCROLL, SB_BOTTOM, 0);
    }
}


结果是完全没有显示,是不是我还有哪些地方不正确?
但是我将RichEdit控件的只读属性去掉之后就可以显示了,但是还是做不到换行。

[ 本帖最后由 smartdog 于 2014-1-15 22:15 编辑 ]
2014-01-15 22:06
smartdog
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-1-9
收藏
得分:0 
回复 10楼 wp231957
3Q!
度娘goole我都问了,但是始终没找到合适的办法。大多都是MFC或者Delphi 的。很少有纯WIN32 API实现
2014-01-18 23:05
smartdog
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-1-9
收藏
得分:0 
远程给记事本发送消息没问题,但是自己的控件就不行。不知道为什么
2014-01-22 20:36
快速回复:RichEdit控件 追加新行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022294 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved