Мое первое предположение - различия между ТЕМАМИ в Vista и XP. Помните, что если вы используете CFrameWnd, в нижней панели состояния в правой части строки состояния есть элемент управления захватом. Таким образом, похоже, что изменения в ComCtl32.dll могут объяснить это, что дает вам меньший прямоугольник. Я предполагаю, что вы просто видите меньший прямоугольник. Ширина (), чем вы делали раньше? Вы не говорите о меньших X и Y одновременно?
Если вам нужно, вы можете поискать правильную версию и развернуть ее вместе с вашим приложением или сделать так, чтобы ваш манифест отражал, какую версию использовать ...
Извините, у меня нет четкого ответа, но единственное, что приходит на ум - темы, так как, если я правильно помню, в VC6 захват был добавлен поверх строки состояния, ИЛИ строка состояния была сжался достаточно, чтобы отобразить его ...
Одним из предложений, которое вы могли бы использовать, было бы определение вашей работающей версии Windows, и было сделано предположение о захвате для ОС. Размер захвата будет того же размера, что и полоса прокрутки, так что вы можете естественным образом удалить столько DLU (или пикселей) из последней ячейки во время выполнения и визуализировать текст на основе этого. Мне придется пойти домой и запустить VC6, и посмотреть, как он действует, исходя из того, что вы здесь говорите ...
У меня нет виртуальной машины Vista, чтобы посмотреть, какую версию ComCtl32.dll она установила по умолчанию, но я полагаю, что они поместили в нее некоторый код для работы с захватом.
Если у вас есть полный пример кода, это действительно облегчит и мне тоже ... В противном случае, я должен начать копать весь мой старый сгенерированный код VC6 и перейти оттуда ...
Интересным тестом было бы вызвать GetSystemMetrics для фрагментов, которые, по нашему мнению, могли бы повлиять на это, и посмотреть, как они отличаются от системы к системе. Если вы переведете Vista в режим «Windows Classic», вы все равно увидите те же результаты?
Кроме того, какая машина у вас в комплекте? Vista или XP?