⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlginfor.cpp

📁 此程序用与图象 图形的模式识别,在VC环境下实现matlab的聚类算法
💻 CPP
字号:
// DlgInfor.cpp : implementation file
//

#include "stdafx.h"
#include "mode.h"
#include "DlgInfor.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// DlgInfor dialog


DlgInfor::DlgInfor(CWnd* pParent /*=NULL*/)
	: CDialog(DlgInfor::IDD, pParent)
{
	//{{AFX_DATA_INIT(DlgInfor)
	m_T = 0.0;
	m_CenterNum = 0;
	m_EquationIn = 0.0;
	m_Times = 0;
	m_MinDis = 0.0;
	m_MaxDis = 0.0;
	m_EquationOut = 0.0;
	m_DisType=1;
	m_MinEquationOut = 0.0;
	m_MaxEquationOut = 0.0;
	//}}AFX_DATA_INIT
	m_ShowType=0;
	mmaxbcos=0;
	mmaxcos=0;
	mmaxous=0;
	mmaxtan=0;
	mminbcos=0;
	mmincos=0;
	mminous=0;
	mmintan=0;
}


void DlgInfor::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DlgInfor)
	DDX_Text(pDX, IDC_EDIT_T, m_T);
	DDX_Text(pDX, IDC_EDIT_CENTERNUM, m_CenterNum);
	DDX_Text(pDX, IDC_EDIT_EQUATIONIN, m_EquationIn);
	DDX_Text(pDX, IDC_EDIT_TIMES, m_Times);
	DDX_Text(pDX, IDC_EDIT_MINDIS, m_MinDis);
	DDX_Text(pDX, IDC_EDIT_MAXDIS, m_MaxDis);
	DDX_Text(pDX, IDC_EDIT_MINEQUATIONOUT, m_MinEquationOut);
	DDX_Text(pDX, IDC_EDIT_MAXEQUATIONOUT, m_MaxEquationOut);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(DlgInfor, CDialog)
	//{{AFX_MSG_MAP(DlgInfor)
	ON_BN_CLICKED(IDC_RADIO_BCOS, OnRadioBcos)
	ON_BN_CLICKED(IDC_RADIO_COS, OnRadioCos)
	ON_BN_CLICKED(IDC_RADIO_OUS, OnRadioOus)
	ON_BN_CLICKED(IDC_RADIO_TAN, OnRadioTan)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DlgInfor message handlers



void DlgInfor::ShowInfor(int i)//K均值2 and 最大最小距离1
{
	if(i==1 || i==4)
	m_ShowType=i;
}

void DlgInfor::ShowInfor(double minous, double maxous,double mincos,double maxcos,double minbcos,double maxbcos,double mintan,double maxtan)//需要用户输入阈值的
{
	mminous=minous;
	mmaxous=maxous;
	mmincos=mincos;
	mmaxcos=maxcos;
	mminbcos=minbcos;
	mmaxbcos=maxbcos;
	mmintan=mintan;
	mmaxtan=maxtan;
//	UpdateData(false);//加上此句出错!!
	m_ShowType=2;	

}

void DlgInfor::ShowInfor(double minous, double maxous,double mincos,double maxcos,double minbcos,double maxbcos,double mintan,double maxtan, double minequation,double maxequation)//ISODATA
{
	mminous=minous;
	mmaxous=maxous;
	mmincos=mincos;
	mmaxcos=maxcos;
	mminbcos=minbcos;
	mmaxbcos=maxbcos;
	mmintan=mintan;
	mmaxtan=maxtan;
	m_MinEquationOut=minequation;
	m_MaxEquationOut=maxequation;
//	UpdateData(false);
	m_ShowType=3;

}


BOOL DlgInfor::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	if (m_ShowType==1)//读取距离形式
	{
/*		GetDlgItem(IDC_EDIT_T)->EnableWindow(false);
		GetDlgItem(IDC_EDIT_EQUATIONIN)->EnableWindow(false);
		GetDlgItem(IDC_EDIT_CENTERNUM)->EnableWindow(false);
		GetDlgItem(IDC_EDIT_TIMES)->EnableWindow(false);

		GetDlgItem(IDC_EDIT_MAXEQUATIONOUT)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_MINEQUATIONOUT)->ShowWindow(false);
*/

		GetDlgItem(IDC_STATIC2)->ShowWindow(false);
		GetDlgItem(IDC_STATIC3)->ShowWindow(false);
		GetDlgItem(IDC_STATIC4)->ShowWindow(false);
		GetDlgItem(IDC_STATIC5)->ShowWindow(false);
		GetDlgItem(IDC_STATIC6)->ShowWindow(false);
		GetDlgItem(IDC_STATIC7)->ShowWindow(false);
		GetDlgItem(IDC_STATIC8)->ShowWindow(false);
		GetDlgItem(IDC_STATIC9)->ShowWindow(false);
		GetDlgItem(IDC_STATIC10)->ShowWindow(false);

		GetDlgItem(IDC_EDIT_MINDIS)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_T)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_MAXDIS)->ShowWindow(false);

		GetDlgItem(IDC_EDIT_EQUATIONIN)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_CENTERNUM)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_TIMES)->ShowWindow(false);

		GetDlgItem(IDC_EDIT_EQUATIONIN)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_MAXEQUATIONOUT)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_MINEQUATIONOUT)->ShowWindow(false);

//		::SetWindowPos((HWND)GetDlgItem(IDC_STATIC1),NULL,200,200,500,500,TRUE);
//		MessageBox("");
		
	}
	else if (m_ShowType==2)//读取阈值
	{
		GetDlgItem(IDC_STATIC9)->ShowWindow(false);
		GetDlgItem(IDC_STATIC10)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_CENTERNUM)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_TIMES)->ShowWindow(false);	

		GetDlgItem(IDC_STATIC6)->ShowWindow(false);
		GetDlgItem(IDC_STATIC7)->ShowWindow(false);
		GetDlgItem(IDC_STATIC8)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_EQUATIONIN)->ShowWindow(false);	
		GetDlgItem(IDC_EDIT_MAXEQUATIONOUT)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_MINEQUATIONOUT)->ShowWindow(false);
	}
	else if (m_ShowType==3)//阈值、类中心数、方差、循环次数
	{
//		GetDlgItem(IDC_EDIT_TIMES)->EnableWindow(false);
		
//		::SetWindowPos(this->m_hWnd,NULL,0,0,500,500,TRUE);
//		GetDlgItem(IDC_STATIC1)->ShowWindow(false);

	}
	else if (m_ShowType==4)////读取类中心数、循环次数
	{
		GetDlgItem(IDC_STATIC3)->ShowWindow(false);
		GetDlgItem(IDC_STATIC4)->ShowWindow(false);
		GetDlgItem(IDC_STATIC5)->ShowWindow(false);
		GetDlgItem(IDC_STATIC6)->ShowWindow(false);
		GetDlgItem(IDC_STATIC7)->ShowWindow(false);
		GetDlgItem(IDC_STATIC8)->ShowWindow(false);
		
		GetDlgItem(IDC_EDIT_MINDIS)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_T)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_MAXDIS)->ShowWindow(false);		

		GetDlgItem(IDC_EDIT_EQUATIONIN)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_MAXEQUATIONOUT)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_MINEQUATIONOUT)->ShowWindow(false);

//		GetDlgItem(IDC_EDIT_CENTERNUM)->EnableWindow(true);
//		GetDlgItem(IDC_EDIT_TIMES)->EnableWindow(true);


	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void DlgInfor::OnRadioBcos() 
{
	m_DisType=3;//特征是二值时的夹角余弦
	m_MinDis=mminbcos;
	m_MaxDis=mmaxbcos;
	UpdateData(false);
}

void DlgInfor::OnRadioCos() 
{
	m_DisType=2;//	夹角余弦距离
	m_MinDis=mmincos;
	m_MaxDis=mmaxcos;
	UpdateData(false);

}

void DlgInfor::OnRadioOus() 
{
	m_DisType=1;//	欧氏距离
	m_MinDis=mminous;
	m_MaxDis=mmaxous;
	UpdateData(false);
}

void DlgInfor::OnRadioTan() 
{
	m_DisType=4;//	Tanimoto测度
	m_MinDis=mmintan;
	m_MaxDis=mmaxtan;
	UpdateData(false);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -