XP滚动条在Windows7/Vista中失控
XP scrollbars going haywire in Windows7/Vista
我有这个XP应用程序(win32 c++),我刚刚在Windows7下测试(实际上是vista,但它在windows 7中做同样的事情)。
我很惊讶,实际上我遇到的唯一问题是:
一个复杂的无模型对话框中的滚动条都不能正常工作。主要的问题是滚动拇指没有响应——如果你试图移动它,它只是锁定在位置上。一直到win98、win2000和winxp都没有问题。现在只支持windows 7/Vista
但是在这个对话框中的滚动条中没有通用性来解释它:一个是在通过资源文件创建的纯文本控件中。另一个是通过CreateWindow创建的richtext。第三个滚动条在自定义窗口类中。它们都不能正常工作(尽管你可以通过右键单击并选择"滚动到这里"来使它们滚动)
所以我猜想也许大多数人在几年前第一次移植到Window7/Vista时遇到了这个问题,但我现在在谷歌上找不到任何东西
对于非模态对话框,您必须在主应用程序GetMessage Loop中运行IsDialogMessage,因此非模态对话框的消息不受TranslateMessage和DispatchMessage的约束。我之前就是这么做的。然而,Vista/Win7不喜欢WM_MOUSEMOVE, WM_LBUTTONDOWN和WM_LBUTTONUP被绕过,就像对话框(即他们需要留在主应用程序消息循环)。至少这是我的问题所在。我现在在主消息循环中检查这些消息类型,这解决了我的问题。也无法解释。也无法解释为什么以前没有人遇到过这种情况(我猜可能是我的设置的一些特质)。感谢那些调查此事的人。
相关文章:
- C++在 Windows Vista 下使用 d3d11
- Vista and FindFirstFileEx(..., FIND_FIRST_EX_LARGE_FETCH)
- 在 MSVC 中将某些库的目标平台版本设置为 10.x 是否使程序与在 Windows Vista/7/8 上运行不兼容
- 用GCC 4.6.2 C QT设置堆栈大小,Mingw,Vista
- 在Vista操作系统中找不到入口点错误
- 模板参数 1 无效(代码::块 Win Vista) - 我不使用模板
- 启动应用程序"Access denied" - Windows Vista
- 虽然循环失控的乒乓球游戏
- 如何在替换调用方并在 xp/vista/7 上运行的窗口中从我的 VS2008/C++ 应用程序执行程序
- CreateSimpleReBar in WTL vista/7 原生外观和感觉
- 在Windows(Vista)上使用C++、Qt的GUI设计问题
- 加载 QPixmap 在 vista 上不起作用
- CFileDialog support XP and Vista
- 查找位置(寻找c++初学者)以创建Windows Vista x64 Ultimate的挂起进程程序
- 可以用于编译Windows Vista或7的代码
- XP滚动条在Windows7/Vista中失控
- 在DLL中使用新的Vista线程池API也可以在XP中加载(在XP中不使用线程池代码)
- 基于功能区的MFC应用程序在Windows pre-Vista/7上工作
- 在Windows XP, Vista, 7和8中使用旧操作系统的兼容性功能的效果如何?
- 为XP和Vista/Windows 7创建一个Win32应用程序