★大侠请进!★ 来者有分!

laserzxq 2003-07-16 11:08:49
我想做一个文本编辑器,是线这样的功能,插入新文本时,(如果需要的话)慢慢滚动上去,不是一下子刷新出来,就象读书软件ReadBook那种效果

现在知道:
::ScrollWindowEx()可以smooth scrolling(最后一个参数flags设为SW_SMOOTHSCROLL)
有个问题:用CEdit::ReplaceSel()或CEditView::OnChar()插入文本时,View已经被刷新了,这是已经不需要再用::ScrollWindowEx()去滚动View
我这样试了一下:插入文本前用SetRedraw(FALSE)禁止刷屏,文本插入后SetRedraw(TRUE)恢复,之后用::ScrollWindowEx()滚动View。可是发现这时::ScrollWindowEx()不能滚动View

附上代码。

大侠看我的思路对不对,我该怎么做?
不胜感激!!!

void CMyEditView::OnTry()
{
// TODO: Add your command handler code here

SetRedraw(FALSE);
GetEditCtrl().ReplaceSel("NewLine\r\n");
SetRedraw(TRUE);
::ScrollWindowEx(m_hWnd, 0, -20, NULL, NULL, NULL, NULL,
SW_SMOOTHSCROLL|0x0100<<16);
}
...全文
34 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
mfc168 2003-07-21
  • 打赏
  • 举报
回复
程序代码没有错误,但是思路不正确,ReplaceSel 在替换完成同时内部触发了Redraw
laserzxq 2003-07-21
  • 打赏
  • 举报
回复
up :)
laserzxq 2003-07-21
  • 打赏
  • 举报
回复
看来只能自己写个ReplaceSel(),不触发Redraw

就此结贴,多谢各位!!!
penter 2003-07-18
  • 打赏
  • 举报
回复
UP;
lsl7909 2003-07-18
  • 打赏
  • 举报
回复
UP!
laserzxq 2003-07-18
  • 打赏
  • 举报
回复
顶顶顶!!!
laserzxq 2003-07-18
  • 打赏
  • 举报
回复
up!!!!!!!!!
littlesoul 2003-07-17
  • 打赏
  • 举报
回复
我也帮你Up,
长点人气。
laserzxq 2003-07-17
  • 打赏
  • 举报
回复
谢谢各位回复!!!

期待大侠!
up!
laserzxq 2003-07-17
  • 打赏
  • 举报
回复
to chinacao(c-ok.net) :
用CDC很有难度?我是菜鸟,心里没底啊
是不是得CView做起,自己画客户区:字体、背景、滚动条、文本输入、消息处理....
很晕!
laserzxq 2003-07-17
  • 打赏
  • 举报
回复
to i_tingfeng(飞扬) :
我试了一下,这样不行
LineScroll()不是慢慢滚动上去的
加上Sleep(1000)
效果是:滚动一行停一下,一跳一跳的
思危 2003-07-17
  • 打赏
  • 举报
回复
大侠都不出手,偶可不敢乱说。
laserzxq 2003-07-17
  • 打赏
  • 举报
回复
up!
laserzxq 2003-07-17
  • 打赏
  • 举报
回复
up!up!!
laserzxq 2003-07-16
  • 打赏
  • 举报
回复
up!
ghostmirror 2003-07-16
  • 打赏
  • 举报
回复
..................
5个三角的都up,我没有话说了。。。。
i_tingfeng 2003-07-16
  • 打赏
  • 举报
回复
可以用CEdit *pEd = &GetEditCtrl()
得到视图的句柄
然后用pEd->LineScroll()函数滚动视图
再加个Sleep(1000)
看看怎么样?
用pEd->GetCount得到视图的总共行数
chinacao 2003-07-16
  • 打赏
  • 举报
回复
要做象读书软件ReadBook那种效果,最好自己用CDC实现。这方面有很多例子。
程序的色彩 2003-07-16
  • 打赏
  • 举报
回复
gz
syl08341 2003-07-16
  • 打赏
  • 举报
回复
look
加载更多回复(10)

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧