Problema de coordenadas VB
Ancho y Alto son el ancho y alto total del formulario, mientras que ScaleWidth y ScaleHeight son el ancho y alto del área del cliente en el formulario (es decir, el área que realmente se puede usar después de eliminar el borde, barra de título, menú, etc.) alto.
Seleccione 0 para ScaleMode, lo que significa que el área del cliente utiliza un sistema de coordenadas definido por el usuario. Si se establece ScaleWidth=100, significa que el ancho del área del cliente del formulario es de 100 unidades. ¿Y a cuántos twips equivale esta unidad? ¿Qué pasa con las unidades predeterminadas de VB)? Podemos volver a seleccionar ScaleMode al valor predeterminado 1. En este momento, encontrará que cuando Ancho = 4000, ScaleWidth = 3885, lo que significa que su unidad de ancho personalizada de 100 = 3885 twips. Ahora deje que Ancho = 5000, luego ScaleWidth = 4875, que. significa que el ancho del área del cliente ha aumentado 4875/3885=1,254826 veces, entonces su unidad de ancho personalizada naturalmente se convertirá en 100*1,254826=125,4826. ! ! La situación de la altura es similar, ya que en este momento es necesario considerar la barra de título del formulario, aunque el Ancho y el Alto son valores iguales, los valores de ScaleWidth y ScaleHeight (calculados en twips) no son iguales, por lo que se personaliza. La unidad de 100 de altura y la unidad de 100 de ancho también son dos unidades de longitud diferentes. El cálculo específico es el siguiente:
Cuando Altura=4000 twips, ScaleHeight=3495 twips,
Cuando Altura=5000 twips, ScaleHeight=4485 twips,
Por lo tanto, la altura del área del cliente ha aumentado en 4485/3495=1.283262
Es decir, la altura personalizada del área del cliente es 100*1.283262=128.3262
Encontrarás que el La altura que calculé es la misma que tu 128.821. Hay una ligera diferencia. Esto se debe a que tu sistema XP y el mío usan diferentes temas de escritorio, por lo que la altura de la barra de título será diferente, pero el error no es muy grande.
Me pregunto si lo entiendes ahora.
Además, ¿cómo podrías llegar a la afirmación de que "el borde exterior del formulario es mucho más grande que el borde interior del formulario"? 1000 metros y 1 kilómetro A juzgar solo por los números, 1000 es mucho más grande que 1, ¡pero no olvides que usan unidades diferentes! ! !