0
我想要一個多行CEdit控件像滾動字幕一樣緩慢地向下滾動自己。如何平滑地滾動CEdit(MFC)
到目前爲止,我在OnTimer()事件中使用CEdit :: LineScroll()。它可以做一個完整的產品線,並不像我預期的那麼順利。 我嘗試用ScrollWindow()替換LineScroll(),以便可以按像素滾動文本,但ScrollWindow()函數不會繪製應滾動到控件中的新文本行。
任何人有什麼想法如何實現這一目標?
如果我沒有明確說明問題。我添加這些GIF文件: 什麼LineScroll()做(我只需要它平滑):
而這正是滾屏()做(下面的文字切割):
這裏是滾屏()的代碼:
CRect clientRect;
m_editAns.GetClientRect(&clientRect);
m_editAns.ScrollWindow(0, -10, NULL, &clientRect);
m_editAns.UpdateWindow();
ValidateRect(&clientRect);
* PS:該項目採用的CEdit控制否則在那裏我不能用另一個控件替換它,儘管繼承是可以接受的。
這裏是我在OnTimer()中的代碼: 'm_editCtrl.ScrollWindow(0,-10,NULL,&clientRect); m_editCtrl.UpdateWindow();' 同樣的問題,新行不顯示。 – SuperLucky
您可以嘗試不使用剪裁矩形'm_editCtrl.ScrollWindow(0,-10,NULL,NULL)'嗎? –
如果UpdateWindow不會導致重繪,那麼您可能需要先使用InvalidateRect使未覆蓋區域失效。 – xMRi