Cómo cambiar el programa de archivos
Este artículo ofrece un ejemplo específico de diseño de iconos animados. Los pasos de programación se detallan a continuación y se proporciona el código agregado.
Después de iniciar Visual C 5.0, utilice MFC AppWizard(exe) para crear un proyecto basado en uno o varios documentos, denominado MyIcon. Deje todas las demás configuraciones como predeterminadas y siga los pasos a continuación.
Primero necesitas dibujar algunos íconos como íconos animados para reemplazar los íconos predeterminados generados por AppWizard. Haga clic derecho en el icono en ResourceView y seleccione "Insertar icono" para crear su icono. En este ejemplo, el autor dibujó tres íconos y dibujó un círculo en la esquina superior izquierda, en la esquina media e inferior derecha, llenándolos con colores rojo, verde y azul respectivamente. La identificación del ícono es de IDI_ICON1 a IDI_ICON3.
Luego, edite el método CmainFrame::OnCreate y agregue el código para configurar el temporizador.
int CMainFrame::OnCreate(LPCREATESTRUCT LPCREATESTRUCT)
{ if (CMDIFrameWnd::OnCreate(lpCreateStruct)= =-1)
return–1;
//Agregue su código
SetTimer(1, 500, NULL);}
Agregue lo siguiente a CMainFrame a través de ClassWizard Función de procesamiento de mensajes:
Función
Noticias
CMainFrame
OnTimer
WM_TIMER
CMainFrame
OnDestroy
WM_Destroy
En el método CMainFrame::OnTimer, agregue el código para iniciar el temporizador.
void CMainFrame::on timer(UINT nIDEvent)
{//Agrega tu código
static int icon[]={IDI_ICON1, IDI_ICON2, IDI _ icon 3 };
índice largo estático = 0;
HICON hIconOld
HICON hIconNew
hola connew = AfxGetApp()- gt ; cargar icono(iconos[índice 3]);
HICON antiguo =(HICON)obtener clase larga(m_hWnd,GCL_HICON);
ASSERT(hIconNew
<); p>ASSERT(hicon antiguo);If (hIconNew!=hIconOld)
{
DestroyIcon(hiconold
SetClassLong); (m_hWnd, GCL_HICON, (largo)HICON nuevo);
RedrawWindow(NULL, NULL, RDW_FRAME | RDW_ERASE);
}
//CMDIFrameWnd:: on timer(nIDEvent);
}
Utilice elementos de matriz para identificar cada ícono, use afxgetapp()-->; LoadIcon(…) obtiene el identificador del siguiente ícono de fotograma, usa GetWindowLong(…) para cargar el ícono del siguiente marco; de lo contrario, descarga el ícono del marco anterior, usa SetClassLong(…) para cargar el ícono del siguiente marco y vuelve a dibujar la ventana principal.
En el método CMainFrame::OnDestroy, agrega código para detener el temporizador cuando se cancela la ventana principal.
void CMainFrame::OnDestroy()
{
CMDIFrameWnd::on destroy();
//Agrega tu código
kill timer(1);
}
Cuando compila y ejecuta la aplicación, puede ver el efecto de animación de los círculos rojos, azules y verdes que se muestran. en un bucle.
Este programa de muestra utiliza un temporizador de 0,5 s para notificar a la aplicación que cambie el icono, por lo que la velocidad de visualización es de dos fotogramas por segundo, por lo que la velocidad de visualización es de dos fotogramas por segundo. Si desea cambiar la velocidad de visualización, puede cambiar el segundo parámetro de SetTimer(), cuya unidad es milisegundos.
Los íconos dinámicos no solo pueden agregar algo de interés a su programa, sino que también reflejan su personalidad y características del software.
¡Las acciones hablan más que las acciones! Amigos, no dejen que su programa VC se mueva.