Cómo hacer que PROGRESS muestre una barra de progreso cuando se ejecuta el programa, cómo implementarlo
Los pasos detallados son los siguientes:
La premisa es que muestres la barra de progreso en un programa de un solo documento.
Uno: Defina una variable miembro de tipo CProgressCtrl en el archivo de encabezado de la clase CMainFrame.
Dos: Agregue el siguiente código a la función OnCreate de la clase CMainFrame:
m_progress.Create(WS_CHILD | WS_VISIBLE, CRect(100, 100, 200, 120), this, 123);
Parámetros: 1. Tipo de espacio de la barra de progreso, WS_CHILD y WS_VISIBLE indican que tiene un estilo de subventana y se puede ver 2. El tamaño y la posición de la barra de progreso se pueden representar mediante un rectángulo 3. Especifique la ventana principal de la barra de progreso. Aquí, configúrelo en 123.
Tres: A continuación, debemos hacer que la barra de progreso recién creada se "mueva", es decir, aumentar continuamente la posición actual en la barra de progreso de alguna manera. Esto se puede hacer a través de la función miembro de StepIt. la clase CProgressCtrl. Esta función hace que la posición actual del control de la barra de progreso avance de acuerdo con un cierto tamaño de paso. En cuanto al tamaño de paso de cada avance, puede configurarlo a través de otra función miembro de la clase CProgressCtrl: SetStep. Una vez que se llama a esta función para establecer un tamaño de paso, las funciones StepIt posteriores avanzarán de acuerdo con este tamaño de paso. Además, para la barra de progreso, también puede establecer su rango, lo que se puede lograr mediante la función miembro SetRange de la clase CProgressCtrl. De forma predeterminada, el valor mínimo del rango es 0 y el valor máximo es 100. En términos generales, el alcance de la barra de progreso debe establecerse en función de la función que implementa. Por ejemplo, si desea controlar el progreso de un software, puede configurar el rango de la barra de progreso de acuerdo con el progreso de la instalación del software; si desea controlar el progreso de la reproducción de un video, puede configurar el rango de; la barra de progreso según el tiempo de reproducción del vídeo.
Puedes usar el código de campo en la función CMainFrame::OnTimer del mensaje de respuesta ON_TIMER para hacer que la barra de progreso se mueva. La siguiente es una referencia de ejemplo. Puedes entenderlo y casi podrás hacerlo. Úselo (busque los puntos clave, otros. Definitivamente no puede entenderlo porque no conoce el entorno específico):
void CMainFrame::OnTimer(UINT nIDEvent)
{
// TODO: Agregue su código de controlador de mensajes aquí y/o llame a default
static int index=0;
SetClassLong(m_hWnd, GCL_HICON, (LONG)m_hIcons[index]);
index= index3;
CTime t=CTime::GetCurrentTime();
CString str=t.Format ("H:M:S");
CClientDC dc(this);
CSize sz=dc.GetTextExtent(str);
m_wndStatusBar.SetPaneInfo (1, IDS_TIMER, SBPS_NORMAL, sz.cx);
m_wndStatusBar.SetPaneText(1, str);
// m_progress.SetRange(0, 50);
m_progress.StepIt();
CFrameWnd::OnTimer(nIDEvent);
}
Cuatro: lo último que hay que tener en cuenta es actualizar el ventana antes de dibujar