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.