Hola:
Si lo ejecuto me aparece esto:
Dentro del código coloqué esto:
Entro del botón puse esto.
El código fuente completo del formulario MFC es este.
Así que mucho he preguntado a universitarios en la calle, me dicen que si, que saben programar C++, le comento lo de MFC y no dicen ni mu, Jajajajajja.
Se que es muy complicado el MFC.
			Si lo ejecuto me aparece esto:
Citarunexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
Dentro del código coloqué esto:
Código (cpp) [Seleccionar] 
// Puerto serie.
Serial* Puerto = new Serial("COM4");
// Comandos para Arduino.
char Luz_ON[] = "Luz_ON"; // Envía "Luz_ON" al puerto serie.
char Luz_OFF[] = "Luz_OFF";
char lectura[50] = "\0"; // Guardan datos de entrada del puerto.Entro del botón puse esto.
Código (cpp) [Seleccionar] 
	Puerto->IsConnected();
	// Encener luz.
	Puerto->WriteData(Luz_ON, sizeof(Luz_ON) - 1); // Envía al puerto el texto "Luz_ON".El código fuente completo del formulario MFC es este.
Código (cpp) [Seleccionar] 
// MFC_ArduinoDlg.cpp: archivo de implementación
//
#include "stdafx.h"
#include "MFC_Arduino.h"
#include "MFC_ArduinoDlg.h"
#include "afxdialogex.h"
#include "SerialClass.h"
#include <iostream>
#include <fstream>
#include <Windows.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// Cuadro de diálogo de CMFC_ArduinoDlg
// Puerto serie.
Serial* Puerto = new Serial("COM4");
// Comandos para Arduino.
char Luz_ON[] = "Luz_ON"; // Envía "Luz_ON" al puerto serie.
char Luz_OFF[] = "Luz_OFF";
char lectura[50] = "\0"; // Guardan datos de entrada del puerto.
CMFC_ArduinoDlg::CMFC_ArduinoDlg(CWnd* pParent /*=NULL*/)
	: CDialogEx(IDD_MFC_ARDUINO_DIALOG, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMFC_ArduinoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CMFC_ArduinoDlg, CDialogEx)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON2, &CMFC_ArduinoDlg::OnBnClickedButton2)
END_MESSAGE_MAP()
// Controladores de mensaje de CMFC_ArduinoDlg
BOOL CMFC_ArduinoDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();
	// Establecer el icono para este cuadro de diálogo.  El marco de trabajo realiza esta operación
	//  automáticamente cuando la ventana principal de la aplicación no es un cuadro de diálogo
	SetIcon(m_hIcon, TRUE);			// Establecer icono grande
	SetIcon(m_hIcon, FALSE);		// Establecer icono pequeño
	// TODO: agregar aquí inicialización adicional
	return TRUE;  // Devuelve TRUE  a menos que establezca el foco en un control
}
// Si agrega un botón Minimizar al cuadro de diálogo, necesitará el siguiente código
//  para dibujar el icono.  Para aplicaciones MFC que utilicen el modelo de documentos y vistas,
//  esta operación la realiza automáticamente el marco de trabajo.
void CMFC_ArduinoDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); // Contexto de dispositivo para dibujo
		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
		// Centrar icono en el rectángulo de cliente
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;
		// Dibujar el icono
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialogEx::OnPaint();
	}
}
// El sistema llama a esta función para obtener el cursor que se muestra mientras el usuario arrastra
//  la ventana minimizada.
HCURSOR CMFC_ArduinoDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}
void CMFC_ArduinoDlg::OnBnClickedButton2()
{
	// TODO: Agregue aquí su código de controlador de notificación de control.
	Puerto->IsConnected();
	// Encener luz.
	Puerto->WriteData(Luz_ON, sizeof(Luz_ON) - 1); // Envía al puerto el texto "Luz_ON".
}
Así que mucho he preguntado a universitarios en la calle, me dicen que si, que saben programar C++, le comento lo de MFC y no dicen ni mu, Jajajajajja.
Se que es muy complicado el MFC.



