Cuando escribo un programa usando mfc, ¿por qué siempre recibo el mensaje de que UpdateData() no está definido cuando uso UpdateData()?

La causa de su problema se puede verificar desde dos aspectos:

1 En resumen

Verificar: ¿Es correcto el proceso de creación de MFC? ¿Está cargada la biblioteca MFC? ¿Se incluye stdafx.h? ¿Hay un área de nombre de clase delante de la función que escribiste? No hay ningún problema con lo anterior y casi no hay situaciones indefinidas.

2 En detalle

2.1 Primero:

Si acaba de escribir un pequeño programa de prueba y ocurre este problema, ¿qué paso tomó al crear MFC? salió mal,

Porque si sigues los pasos estándar para crear, es poco probable que ocurra tal problema. Si está escribiendo un proyecto grande,

verifique si su biblioteca dinámica o estática de MFC está cargada correctamente o si la biblioteca mfc no está cargada

Verifique el archivo donde; ¿Dónde se encuentra la función include stdafx.h directa o indirectamente?

2.2 Segundo:

Verifique la función que escribió (suponiendo que esta función se llame fun(...) y se llame a UpdateData() en esta función), ¿es correcta? Esta función no está precedida por "nombre de clase::", es decir, si está escrita como "nombre de clase::fun(...)";

2.3 Conclusión: si su VS/VC es instalado correctamente, el resto de lo anterior. Si la primera operación se realiza correctamente, no habrá otros problemas. Es casi imposible que ocurra su problema.