Windows mobile Win CE/Windows Mobile上MFC中的滚动对话框

Windows mobile Win CE/Windows Mobile上MFC中的滚动对话框,windows-mobile,mfc,scroll,windows-ce,Windows Mobile,Mfc,Scroll,Windows Ce,我正在构建一个基于对话框的Windows Mobile应用程序。 “我的主容器”对话框有一个选项卡控件,可在不同的子对话框(作为单独的选项卡页)之间切换 由于我的显示空间有限,我需要我的对话框垂直滚动。 下面是一些在线示例,我添加了一个垂直滚动条,以及相应的消息和处理程序来处理垂直滚动 滚动条本身的行为非常完美,当我点击或拖动滚动条时,滚动条的位置会发生变化。但是,我的对话框保持静态,不会滚动 为了隔离问题,我修改了scroll消息处理程序,并在每次出现滚动时硬编码ScrollWindow()命

我正在构建一个基于对话框的Windows Mobile应用程序。 “我的主容器”对话框有一个选项卡控件,可在不同的子对话框(作为单独的选项卡页)之间切换

由于我的显示空间有限,我需要我的对话框垂直滚动。 下面是一些在线示例,我添加了一个垂直滚动条,以及相应的消息和处理程序来处理垂直滚动

滚动条本身的行为非常完美,当我点击或拖动滚动条时,滚动条的位置会发生变化。但是,我的对话框保持静态,不会滚动

为了隔离问题,我修改了scroll消息处理程序,并在每次出现滚动时硬编码ScrollWindow()命令,如下所示:

void SettingsDialog::OnVScroll(UINT nSBCode, 
    UINT nPos, CScrollBar* pScrollBar)
{
    ScrollWindow(0,30,NULL,NULL);
}
代码已到达,但对话框中仍然没有滚动。 有人能解释一下这个谜吗


顺便说一句,我发现了一个关于编码大师的线程,它讨论了完全相同的问题,但在这里没有得到解决:

我遇到了相同的问题。我从不使用MFC,但使其正常工作的Win32函数如下:

         ScrollWindowEx(hDlg, 0, currentPos - si.nPos, NULL, NULL, NULL, NULL, SW_SCROLLCHILDREN | SW_INVALIDATE);
MSDN说这

注意:提供ScrollWindow功能是为了向后兼容。新应用程序应使用ScrollWindowEx功能


这解决了我的问题。我仍然不知道为什么常规的ScrollWindow调用失败,但在这一点上,我毫不在乎……:)谢谢