visual valor ejemplos dim convertir string fonts vb6

valor - string() visual basic



Centrado de fuentes en VB6 (4)

Hay funciones GDI de Win32 que puede invocar: vea por ejemplo GetTextExtentPoint32 en http://msdn.microsoft.com/en-us/library/ms534223(VS.85).aspx

¿Cómo se determina la longitud de una cadena de texto en letra Arial Bold y luego se centra en VB6?

No estamos usando una "etiqueta" o "cuadro de imagen" para imprimir el texto en la pantalla. Estamos dimensionando el texto sobre la marcha, y permitiendo al usuario escalar el tamaño de nuestra aplicación a su gusto. Escribimos el texto en la pantalla usando el código.


Una forma es tener un cuadro de imagen oculto y configurar las especificaciones de fuente de ese cuadro de imagen de la manera que desee.

Luego use los métodos TextHeight y TextWidth de PictureBox para tomar sus medidas. Las unidades estarán en cualquier modo de escala en el que esté configurado el cuadro de imagen.

Si está imprimiendo directamente en la impresora o formulario, simplemente configure su fuente PRIMERO y luego tome sus medidas.

Centrarlo

MyText = "Hello World" <displayarea>.FontName = "Arial" <displayarea>.FontSize = 14 <displayarea>.FontBold = True TextWidth = <displayarea>.TextWidth(MyText) TextLeftCoordinate = <displayarea>.ScaleLeft+<displayarea>.ScaleWidth/2-TextWidth/2 <displayarea>.CurrentX = TextLeftCoordinate <displayarea>.Print MyText

Sustituya displayarea con cualquier objeto que esté utilizando.

De acuerdo con su nota de respuesta actualizada, la sugerencia de cuadro de imagen oculta no se utiliza para imprimir. Solo se obtiene la medida de texto. Sin embargo, está imprimiendo directamente en el formulario, por lo que solo debe usar el ejemplo de código anterior.


Su mejor opción puede ser Form.TextWidth, que parece devolver el ancho de una cadena en twips. Acabo de tomar este enfoque para dimensionar dinámicamente un botón en función de la longitud de la etiqueta que debe aparecer dentro de él.

También hay una función correspondiente llamada Form.TextHeight que le permite hacer lo mismo en la dimensión vertical.

Asegúrese de establecer la propiedad de Fuente del formulario para que coincida con la propiedad de Fuente del control para el que intenta medir el texto, de lo contrario obtendrá resultados incorrectos.

Obtenga más información en http://msdn.microsoft.com/en-us/library/aa267168(VS.60).aspx


No recuerdo los detalles (han pasado unos 3 años desde la última vez que utilicé VB 6), pero hay un método en Form llamado algo así como " MeasureString ". Toma la cadena y la mide de acuerdo con la configuración de fuente del formulario.

Además, aquí hay un comentario publicado por Jason Lepack en caso de que haya entendido mal y haya complicado demasiado sus requisitos:

"Las etiquetas generalmente tienen una propiedad de alineación. Si la configura para que se alinee con el centro, independientemente de la cara de la fuente, debe centrarse en la etiqueta".