我有一个在旧版本的 Windows 下开发的工具栏,由于窗口新的边框填充,它在 Vista 下很大程度上被切断了。使用默认的 4 边框填充,工具栏上的所有内容都向下和向右移动 4 个像素,然后从底部和右侧将所有内容裁剪 4 个像素。我不太关心水平尺寸,但垂直这意味着应用程序丢失了 8 个像素的可见内容。
“工具栏”是指创建类似于以下内容的窗口:
APPBARDATA AppBarData;
AppBarData.hWnd = CreateWindowEx(WS_EX_TOOLWINDOW | WS_EX_TOPMOST, MAIN_WNDCLASS,
"", WS_POPUP | WS_THICKFRAME | WS_CLIPCHILDREN,
0, 0, 400, TOOLBAR_HEIGHT, NULL, NULL,
AppInstance, NULL);
// more initialization ....
SHAppBarMessage(ABM_NEW, &AppBarData);
由于边框填充对于 Vista 来说似乎是一个新的配置项,在 XP 和 Vista 中运行的应用程序如何处理这个问题?我的问题是:
- 工具栏是否可以告诉 Vista“忽略'边框填充'设置;我的边框填充为 0”?
- 如果不是,应用程序如何确定边框填充设置的值,以便它可以使其窗口高出两倍?
- 对于这两个问题,您如何以允许相同的可执行文件在 XP、Vista、Win2003 等系统下运行的方式做到这一点?