【问题标题】:Scrolling Dialog in MFC on Win CE / Windows MobileWin CE / Windows Mobile 上 MFC 中的滚动对话框
【发布时间】:2010-11-18 07:06:15
【问题描述】:

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

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

滚动条本身表现完美,当我点击它或拖动它时会改变它的位置。然而,我的对话框仍然是静态的并且不会滚动。

为了隔离问题,我修改了滚动消息处理程序并在滚动发生时硬编码了一个 ScrollWindow() 命令,如下所示:

void SettingsDialog::OnVScroll(UINT nSBCode, 
    UINT nPos, CScrollBar* pScrollBar)
{
    ScrollWindow(0,30,NULL,NULL);
}

代码已到达,但我的对话框中仍然没有滚动。 谁能解开这个谜团?

顺便说一句,我在 Coding Guru 上找到了一个讨论完全相同的问题的帖子,但在这里没有解决:http://www.codeguru.com/forum/showthread.php?t=54304

【问题讨论】:

    标签: windows-mobile mfc scroll windows-ce


    【解决方案1】:

    我也遇到过同样的问题。我从不使用 MFC,但使它正常工作的 Win32 函数是这样的:

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

    【讨论】:

    • 这解决了我的问题。我仍然不知道为什么常规的 ScrollWindow 调用会失败,但在这一点上,我不在乎...... :) 谢谢!
    【解决方案2】:

    MSDN 这么说...!

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

    http://msdn.microsoft.com/en-us/library/bb787591(VS.85).aspx

    【讨论】:

      猜你喜欢
      • 2010-10-07
      • 2011-08-11
      • 2010-11-21
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多