Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo cambiar la imagen del programa de archivos

Cómo cambiar la imagen del programa de archivos

Microsoft Visual C 5.0 es un entorno de programación para programadores, muchos de los cuales son principiantes. Como programadores experimentados, no pueden tener un conocimiento profundo de todos los aspectos de VC. Cada vez que programa con éxito un software, ¿alguna vez ha pensado en hacer que los iconos que diseña sean dinámicos?

Este artículo ofrece un ejemplo específico de diseño de iconos animados. Los pasos de preparación se detallan a continuación y se proporciona código adicional.

Después de iniciar Visual C 5.0, use MFC AppWizard (exe) para crear un proyecto basado en un solo documento (Single document) o múltiples documentos (Multiple document), llamado MyIcon, y use las opciones predeterminadas para otros Luego siga los pasos a continuación.

Primero, debe dibujar algunos íconos como íconos animados para reemplazar los íconos predeterminados generados por AppWizard. Cree su ícono haciendo clic derecho en el ícono en ResourceView y seleccionando Insertar ícono. En este ejemplo, el autor dibujó tres íconos en la parte superior izquierda, media e inferior derecha de un círculo y los rellenó de rojo, verde y azul. Los iconos tienen ID IDI_ICON1 a IDI_ICON3.

Luego, edite el método CmainFrame::OnCreate para agregar código para configurar el temporizador de dedo.

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{if(CMDIFrameWnd::OnCreate(lpCreateStruct)==-1)

return -1; /p>

...

//Agrega tu código

SetTimer(1,500,NULL);}

Agrega tu código.

Agregue el siguiente controlador de mensajes a CMainFrame a través de ClassWizard:

Función

Mensaje

CMainFrame

OnTimer

WM_TIMER

CMainFrame

OnDestroy

WM_DESTROY

En el método CMainFrame::.OnTimer, agregue el Código eso inicia el cronómetro.

void CMainFrame::OnTimer(UINT nIDEvent)

{//Agrega tu código

static int icon[]={IDI_ICON1, IDI_ICON2, IDI_ICON3} ;

índice largo estático=0;

HICON hIconOld;

HICON hIconNew

hIconNew=AfxGetApp()-gt; iconos[índice 3]);

hIconOld=(HICON)GetClassLong(m_hWnd, GCL_HICON);

ASSERT(hIconNew

ASSERT(hIconOld);

if(hIconNew!=hIconOld)

{

DestroyIcon(hIconOld);

SetClassLong(m_hWnd, GCL_HICON, (largo) hIconNew);

RedrawWindow(NULL, NULL, RDW_FRAME|RDW_ERASE);

}

//CMDIFrameWnd::OnTimer(nIDEvent);

}

}

}

Utilice elementos de matriz para identificar cada icono, utilice AfxGetApp()-gt; El identificador del ícono del siguiente marco, use GetWindowLong(...) para obtener el identificador del ícono del siguiente marco para cargar el ícono del siguiente marco; de lo contrario, el ícono del marco anterior se descargará, use SetClassLong(...) para cargar el icono del siguiente cuadro y vuelva a dibujarlo en la ventana principal.

En el método CMainFrame::OnDestroy, agregue código para finalizar el temporizador cuando se cierre la ventana principal.

void CMainFrame::OnDestroy()

{

CMDIFrameWnd::OnDestroy()

//Agregar código

KillTimer(1);

}

Compile y ejecute la aplicación para ver el efecto de animación de círculos rojos, azules y verdes que se reproducen en un bucle en la pantalla.

El programa de muestra utiliza un temporizador de 0,5 segundos para notificar a la aplicación que cambie el ícono, por lo que el ícono se muestra a dos fotogramas por segundo. Si desea cambiar la velocidad de visualización, puede hacerlo cambiando el segundo parámetro de SetTimer() en milisegundos.

Los íconos dinámicos enriquecidos no solo pueden agregar algo de diversión a su programa, sino que también reflejan su estilo personal y las funciones del software.

¡Es hora de actuar! Amigos, no dejen que su programa VC se mueva.