Red de conocimiento informático - Conocimiento informático - Como se muestra en la imagen, VB: Este es un archivo de ícono transparente insertado en el formulario. ¿Por qué el color es diferente del color del ícono real?

Como se muestra en la imagen, VB: Este es un archivo de ícono transparente insertado en el formulario. ¿Por qué el color es diferente del color del ícono real?

VB no admite íconos de colores verdaderos y automáticamente encontrará baja calidad (si no está disponible, después de la compilación, el ícono del programa es normal y la ventana es de baja calidad). La solución ahora es ajustar la API en tiempo de ejecución para reemplazar el ícono. El siguiente código extraerá automáticamente el ícono exe como ícono de ventana, pero solo se podrá usar un ícono para todas las ventanas. Método de llamada: identificador de ventana SetWindowIcon. También puedes poner el ícono en un recurso, pero debes usar un recurso compilado como rc, que no es compatible con el editor de recursos de vb.

Private?Const?ICON_BIG?=?1

p >

¿Privado?Const?ICON_SMALL?=?0

¿Privado?Const?WM_SETICON?=?amp;H80

¿Privado?Declarar?Función?Enviar mensaje?Lib?" usuario32 "?"SendMessageA"?(ByVal?hWnd?As?Long,?ByVal?wMsg?As?Long,?ByVal?wParam?As?Long,?lParam?As?Any)?As?Long

¿Privado?¿Declarar?Función?ExtractIcon?Lib?"shell32.dll"?"ExtractIconA"?(ByVal?hInst?As?Long,?ByVal?lpszExeFileName?As?String,?ByVal?nIconIndex?As?Long)? ?LongPublic?Sub?SetWindowIcon(hWnd?As?Long)

Dim?hIcon?As?Long

hIcon?=?ExtractIcon(App.

SendMessage ?hWnd, ?WM_SETICON, ?ICON_SMALL, ?ByVal?hIcon

Enviar mensaje?hWnd, ?WM_SETICON, ?ICON_BIG, ?ByVal?hIcon

Fin?