//{{AFX_INCLUDES()
#include "msflexgrid.h"
//}}AFX_INCLUDES
#if !defined(AFX_MODIFICAR_H__5CA14B6F_6C49_42EB_9FB9_172394779B67__INCLUDED_)
#define AFX_MODIFICAR_H__5CA14B6F_6C49_42EB_9FB9_172394779B67__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Modificar.h : header file
//

#include "CForma.h"

/////////////////////////////////////////////////////////////////////////////
// CModificar dialog

class CModificar : public CDialog
{
// Construction
public:
	CModificar(CWnd* pParent = NULL);   // standard constructor

	ODatabase *m_pBd; // Puntero a la conexión con la base de datos Oracle.
	COpciones *m_Opt; // Opciones seleccionadas en el formulario "Configuración".
	CDC *pDC;		  // Puntero a un contexto de dispositivo (para dibujar).
	CImagen dib;	  // Imagen analizada en cada momento.
	int scrx, scry;	  // Trozo de la imagen a visualizar (scrx,scry) en la cuadrícula.
	int modo;		  // Si vale 0 -> Ajustamos la imagen a la cuadricula (imagen < cuadricula).
					  // Si vale 1 -> Visualizamos la imagen con sus proporciones + 2 scrollbars.

// Dialog Data
	//{{AFX_DATA(CModificar)
	enum { IDD = IDD_MODIFICAR };
	CScrollBar	m_ScrVer;
	CScrollBar	m_ScrHor;
	CButton	m_ButAnadir;
	CButton	m_ButEliminarBD;
	CButton	m_RadVista;
	CComboBox	m_BD;
	CButton	m_ButCancelar;
	CButton	m_ButEliminar;
	CMSFlexGrid	m_Grid;
	CMSFlexGrid	m_Grid2;
	CString	m_TxtBD;
	int		m_Eleccion;
	CString	m_TxtSigma;
	int		m_ValHor;
	int		m_ValVer;
	//}}AFX_DATA


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CModificar)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Inserta en la base de datos la imagen 'img' con todos sus datos (almacenados en 'datos')
	void InsertarImagen(CForma *datos, CString img);
	// Elimina las vistas creadas por cada imagen (si existen)
	void EliminarFicheros(CString nombre);
	// Pone los títulos al grid de las imágenes de la Base de Datos
	void IniciaGrid();
	// Pone los títulos al grid de los puntos característicos de las imágenes
	void IniciaGrid2();
	// Carga el grid con las imágenes de cada grupo de imágenes
	void CargaGrid();
	// Carga el grid con los puntos característicos de la imagen seleccionada en el otro grid
	void CargarGrid2();
	// Carga en el combo todos los grupos de imágenes de la Base de Datos
	void CargaBDs();
	// Carga el sigma correspondiente al grupo de imágenes seleccionado
	void CargaSigma();
	// Nos permite dibujar la vista seleccionada por el usuario (normal, contraste, ...)
	void PulsaRad();
	// Habilita o deshabilita botones en cada momento
	void ComprobarBotones();
	// Prepara la imagen para ser dibujada por "MostrarImagen"
	void DibujarImagen(int scrolling);
	// Dibuja una marca en la vista, dependiendo del punto seleccionado en el grid
	void SeleccionarPunto(CString imagen, int orden);
	// Muestra la imagen en pantalla, ajustada o con scroll
	void MostrarImagen();
	// Muestra un mensaje descriptivo del error sucedido en alguna fase de la búsqueda
	void MostrarError(int error);

	// Generated message map functions
	//{{AFX_MSG(CModificar)
	virtual void OnCancel();
	afx_msg void OnButEliminar();
	virtual BOOL OnInitDialog();
	afx_msg void OnSelChangeGrid();
	afx_msg void OnButAnadir();
	afx_msg void OnSelchangeCombobd();
	afx_msg void OnAnadirbd();
	afx_msg void OnEliminarbd();
	afx_msg void OnRadContorno();
	afx_msg void OnRadContraste();
	afx_msg void OnRadGrafica();
	afx_msg void OnRadNormal();
	afx_msg void OnRadUmbral();
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	afx_msg void OnPaint();
	afx_msg void OnAyuda();
	afx_msg void OnSelChangeGrid2();
	DECLARE_EVENTSINK_MAP()
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MODIFICAR_H__5CA14B6F_6C49_42EB_9FB9_172394779B67__INCLUDED_)
