Código fuente mfc grande
1.Agregue # include < math.h & gt
2. Agregue datos y funciones miembro a la clase CCalculatorDlg.
Número par 1, número 2;
int NumberState, OperationState
void cal();
Y en la construcción de CCalculatorDlg clase Agregar NumberState = 1 en la función
3. Agregar botón de mensaje afx _ msg void OnNumberKey(UINT nID);
afx _ msg void OnOperationKey(UINT nID); p>
4 Agregue código entre begin_MESSAGE_MAP(cmy 1 DLG, cdialog) y END_MESSAGE_MAP() en el archivo CalculatorDlg.cpp.
ON_COMMAND_RANGE(IDC_número 1, IDC_NUMBER10, OnNumberKey)
ON_COMMAND_RANGE (IDC_número 11, IDC_NUMBER20, OnOperationKey)
5. Agregue código para las funciones miembro de OnNumberKey y OnOperationKey.
calculadora nula DLG::OnNumberKey(UINT nID)
{
int n = 0;
Switch(nID) p>
p>
{
Caso IDC_número 1:n = 1;Pausa;
Caso IDC_número 2:n = 2;Pausa;
Caso número_IDC 3:n=3;Interrupción;
Caso Número_IDC 4:n=4;Interrupción;
Caso Número_IDC 5:n=5;Interrupción;
Caso IDC_número 6:n=6;Rotura;
Caso IDC_número 7:n=7;Rotura;
Caso IDC_número 8: n = 8; >
Caso IDC_número 9: n = 9; roto;
Caso IDC_número 10: n = 0;
}
if(estado digital) ==1)
{
m_resultado = m_resultado * 1n
número 1 = m_resultado;
<; p>update data(FALSE); //Actualiza el valor en el cuadro de edición}
Otros
{
m _ resultado = m _ resultado * 1n;
número2 = m _ resultado
actualizar datos (FALSO);
}
}
calculadora nula DLG::OnOperationKey(UINT nID)
{
Switch(nID )
{
Caso IDC _ número 13:///" botón
estado de operación = 1;
actualizar datos(FALSE );
m_result = 0;
estado del número = 2;
Pausa;
Caso IDC_número 14:/ /* "Botón
estado de operación = 2; p>
actualizar datos(FALSO);
m _ resultado = 0;
estado del número = 2; p>Caso IDC_NUMBER15: // botón "+"
estado de operación = 3;
actualizar datos (FALSO); >
estado del número = 2;
Interrupción;
Caso IDC_número 16 ://-" botón
estado de operación = 4;
actualizar datos(FALSO);
m _ resultado = 0;
estado del número = 2;
Romper;
caso IDC _ número 17:// El botón "C", que se usa para deshacer, se puede eliminar si no es necesario.
Número 1 = número 2 = m _ resultado = 0;
actualizar datos(FALSE);
NumberState = 1; Break;
Caso IDC_NUMBER20: //" "Botón
cal(); //Llamar a la función miembro de cal
Break;
}
}
6. Agregar código para la función miembro cal()
void CCalculatorDlg::cal()
{ p>
Interruptor (estado de operación)
{
Caso 1:
m _ resultado = (doble)número 1/número 2; p>
p>
update data(FALSE); //Actualiza el resultado en el cuadro de edición
número 1 = m _ resultado; //Usa el resultado de esta operación como el primero; operación del siguiente número de operación.
Estado del número = 2; //El número ingresado la próxima vez se utilizará como segundo operando.
Pausa;
Caso 2:
m _ resultado = número 1 * número 2;
actualizar datos (FALSO);/ /Actualizar el resultado en el cuadro de edición
número 1 = m_result;
número estado = 2;
Pausa;
Caso tres :
m_result = número 1+número 2;
actualizar datos(FALSE); //Actualiza el resultado en el cuadro de edición
número 1 = m_result;
número estado = 2;
Pausa;
Caso 4:
m_result = número 1-número 2;
update data(FALSE); //Actualiza el resultado en el cuadro de edición
número 1 = m_result;
número estado = 2;
Romper ;
}
estado de operación = 0;
}
Tenga en cuenta que el número de identificación del botón debe ser el mismo que el ¡Los números de identificación en el programa son consistentes! ! ! ! De lo contrario, algunos botones no responderán al hacer clic...