怎样实现自动滚动呢?

turbopeng 2002-02-04 11:55:28
小弟我写了一个单文档的程序。子对话框非常大。所以它的右边就有了个滚动条。因为是数据录入。在子对话框上有很多 EDITBOX,所以希望每跳转一个 EDITBOX,就发送一条滚动消息。但是那个滚动条并不动。这是怎么回事啊?谢谢!我的代码如下:
void CVCCView::OnKillfocusEdit1()
{
// TODO: Add your control notification handler code here
HWND m_hWnd;
m_hWnd = ::FindWindow(NULL,LPCTSTR("无标题 - VCC"));
if(m_hWnd != NULL)
{
BOOL bPostSuccess;
bPostSuccess = ::PostMessage(m_hWnd, WM_VSCROLL, 0, 0);//SendMessage
if(bPostSuccess == 0)
{
AfxMessageBox("Error!");
}
}
else
AfxMessageBox("?");
}
...全文
140 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
111222 2002-02-04
  • 打赏
  • 举报
回复
CEdit::LineScroll
void LineScroll( int nLines, int nChars = 0 );
NowCan 2002-02-04
  • 打赏
  • 举报
回复
去掉最后一个参数。
turbopeng 2002-02-04
  • 打赏
  • 举报
回复
老兄啊,您的第一种方法可行。第三种方法提示是:
I:\Documents and Settings\wys.BORN-BORN\桌面\VCC\VCCView.cpp(135) : error C2660: 'GetScrollInfo' : function does not take 4 parameters
这是怎么回事啊?谢谢!您今天的分是得定了。
robothn 2002-02-04
  • 打赏
  • 举报
回复
SCROLLINFO si;
::GetScrollInfo(m_hWnd, SB_VERT, &si, SIF_ALL); // Get info
si.nPos += 10; // Scroll Down 10 point
// Simulate Mouse drag and drop the bar at POSITION: nPos
::PostMessage(m_hWnd, WM_VSCROLL, MAKELONG(SB_THUMBPOSITION, si.nPos), 0);
//滚动太小的话:就改一下 10
Jerry529 2002-02-04
  • 打赏
  • 举报
回复
单文档的话试试:

{
// TODO: Add your control notification handler code here
BOOL bPostSuccess;
bPostSuccess = ::PostMessage(WM_VSCROLL, 0, 0);//SendMessage
if(bPostSuccess == 0)
{
AfxMessageBox("Error!");
}
}
else
AfxMessageBox("?");

robothn 2002-02-04
  • 打赏
  • 举报
回复
::PostMessage(m_hWnd, WM_VSCROLL, SB_LINEDOWN, 0);
蒋晟 2002-02-04
  • 打赏
  • 举报
回复
为什么不用属性表?
robothn 2002-02-04
  • 打赏
  • 举报
回复
我还要用 si.nMin, si.nMax, 所以没用 GetScrollPos()
robothn 2002-02-04
  • 打赏
  • 举报
回复
你是要滚动Dialog, 而不是 CEdit
滚谁是谁的 hWnd
robothn 2002-02-04
  • 打赏
  • 举报
回复
没有吗?
用你的Dialog 的 m_hWnd
//In your dialog class
int nPos = GetScrollPos(SB_VERT);
nPos+=10;
PostMessage(WM_VSCROLL, MAKELONG(SB_THUMBPOSITION, nPos), 0);
//In other class , m_hWnd is hWnd of your CXXDialog
nPos = ::GetScrollPos(m_hWnd, SB_VERT);
nPos+=10;
::PostMessage(m_hWnd, WM_VSCROLL, MAKELONG(SB_THUMBPOSITION, si.nPos), 0);
turbopeng 2002-02-04
  • 打赏
  • 举报
回复
老兄啊,您的 m_YouMember 是什么啊?是和 Edit 绑定的变量吗?我这里没有用到绑定的变量啊。
robothn 2002-02-04
  • 打赏
  • 举报
回复
我在定时器里用这段代码 实现了自动滚屏的
robothn 2002-02-04
  • 打赏
  • 举报
回复
Oh,sorry
m_YouMember.GetScrollInfo(SB_VERT, &si, SIF_ALL);
m_YouMember.PostMessage(WM_VSCROLL, ................);

16,471

社区成员

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

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

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