Различный размер, который вы видели, вызван разным значением по умолчанию DPI (точек на дюйм) в обеих ОС. Windows XP и Vista устанавливают значение логического DPI по умолчанию, равное 96, независимо от размера вашего монитора, но начиная с Windows 7, значение DPI по умолчанию, автоматически рассчитываемое Windows на основе размера вашего монитора. Это будет длинным объяснением, если я объясню всю концепцию DPI в этом месте. Итак, вы, вероятно, увидите, что фон больше в Windows 7, верно? поскольку значение dpi в Windows 7, как правило, превышает 96, оно может составлять 120, 150 или даже 192 т / д. Windows 7 автоматически решит, что это зависит от размера вашего монитора.
Итак, лучшее решение вашей проблемы - создание разных фоновых изображений для всех возможных значений dpi, которые вы можете встретить, а затем используйте GetDeviceCaps(..., LOGPIXELSX)
, чтобы получить текущее значение dpi, используемое Windows.