CImageInitiate 类:用于遥感图像初始化的 MFC 对话框类
CImageInitiate 类:用于遥感图像初始化的 MFC 对话框类
该类是一个 MFC 对话框类,用于初始化遥感图像,包括设置图像格式、选择传感器类型、设置图像大小等。该类包含了一些按钮和菜单,允许用户选择不同的图像参数。
构造函数:
CImageInitiate::CImageInitiate(CWnd* pParent /*=NULL*/)
: CDialog(CImageInitiate::IDD, pParent)
{
m_bhTM4 = FALSE;
m_bhTM5= FALSE;
m_bhTM7= FALSE;
m_bhMODIS= FALSE;
m_bhSPOT1= FALSE;
m_bhSPOT4= FALSE;
m_bhMSS4= FALSE;
m_bhMSS5= FALSE;
//{{AFX_DATA_INIT(CImageInitiate)
m_samples = 0;
m_lines = 0;
m_bands = 0;
//}}AFX_DATA_INIT
m_classnum = 0;
ColorChange[0]=RGB(0,0,0);
ColorChange[1]=RGB(255,0,0); ColorChange[2]=RGB(0,255,0); ColorChange[3]=RGB(0,0,255);
ColorChange[4]=RGB(245,245,220); ColorChange[5]=RGB(0,128,128); ColorChange[6]=RGB(255,255,0);
ColorChange[7]=RGB(128,0,128); ColorChange[8]=RGB(240,128,128); ColorChange[9]=RGB(153,50,204);
ColorChange[10]=RGB(255,165,0); ColorChange[11]=RGB(184,134,11); ColorChange[12]=RGB(255,69,0);
ColorChange[13]=RGB(128,128,0); ColorChange[14]=RGB(250,240,230); ColorChange[15]=RGB(218,165,32);
ColorChange[16]=RGB(128,128,128); ColorChange[17]=RGB(255,228,196); ColorChange[18]=RGB(173,216,230);
ColorChange[19]=RGB(25,25,112); ColorChange[20]=RGB(255,0,255); ColorChange[21]=RGB(0,255,255);
ColorChange[22]=RGB(225,235,205); ColorChange[23]=RGB(0,255,127); ColorChange[24]=RGB(255,99,71);
ColorChange[25]=RGB(250,240,230); ColorChange[26]=RGB(255,0,255); ColorChange[27]=RGB(102,205,170);
ColorChange[28]=RGB(218,112,214); ColorChange[29]=RGB(238,230,170); ColorChange[30]=RGB(255,239,213);
ColorChange[31]=RGB(245,223,179); ColorChange[32]=RGB(255,255,255); ColorChange[33]=RGB(255,248,220);
ColorChange[34]=RGB(70,130,180); ColorChange[35]=RGB(210,180,140); ColorChange[36]=RGB(64,224,208);
ColorChange[37]=RGB(240,255,240); ColorChange[38]=RGB(178,34,34); ColorChange[39]=RGB(255,218,185);
}
数据交换函数:
void CImageInitiate::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CImageInitiate)
DDX_Text(pDX, IDC_EDIT1, m_samples);
DDX_Text(pDX, IDC_EDIT2, m_lines);
DDX_Text(pDX, IDC_EDIT3, m_bands);
//}}AFX_DATA_MAP
}
消息映射函数:
BEGIN_MESSAGE_MAP(CImageInitiate, CDialog)
//{{AFX_MSG_MAP(CImageInitiate)
ON_BN_CLICKED(IDC_CLASSIFICATION_IMAGE, OnClassificationImage)
ON_BN_CLICKED(IDC_HEADER_SENSOR, OnHeaderSensor)
ON_COMMAND(ID_SENSOR_LANDSAT_MSS4, OnSensorLandsatMss4)
ON_COMMAND(ID_SENSOR_LANDSAT_MSS5, OnSensorLandsatMss5)
ON_COMMAND(ID_SENSOR_LANDSAT_TM4, OnSensorLandsatTm4)
ON_COMMAND(ID_SENSOR_LANDSAT_TM5, OnSensorLandsatTm5)
ON_COMMAND(ID_SENSOR_LANDSAT_TM7, OnSensorLandsatTm7)
ON_COMMAND(ID_SENSOR_MODIS, OnSensorModis)
ON_COMMAND(ID_SENSOR_SPOT1, OnSensorSpot1)
ON_COMMAND(ID_SENSOR_SPOT4, OnSensorSpot4)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
初始化函数:
BOOL CImageInitiate::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CheckRadioButton(IDC_BYTE,IDC_INT,IDC_BYTE);
CheckRadioButton(IDC_STANDARD_IMAGE,IDC_TRACE_IMAGE,IDC_STANDARD_IMAGE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
确认按钮响应函数:
void CImageInitiate::OnOK()
{
// TODO: Add extra validation here
DataResult=GetCheckedRadioButton(IDC_BYTE,IDC_INT);
FileResult=GetCheckedRadioButton(IDC_STANDARD_IMAGE,IDC_TRACE_IMAGE);
CDialog::OnOK();
}
传感器菜单响应函数:
void CImageInitiate::OnHeaderSensor()
{
CWnd * pClientWnd=GetDlgItem(IDC_HEADER_SENSOR);
CRect rcDest,rcClip;
pClientWnd->GetClientRect(&rcDest);
pClientWnd->GetWindowRect(&rcClip);
CPoint point;
point = rcClip.CenterPoint();
CMenu myPopupMenu;
myPopupMenu.LoadMenu(IDR_SENSOR);
CMenu *pPopup = myPopupMenu.GetSubMenu(0);
pPopup->TrackPopupMenu(TPM_CENTERALIGN,
point.x ,//- 95,
point.y ,//- 150,
this);
}
其他响应函数:
void CImageInitiate::OnSensorLandsatMss4()
{
GetDlgItem(IDC_HEADER_SENSOR)->SetWindowText("Landsat MSS4");
m_bhMSS4 = TRUE;
}
void CImageInitiate::OnSensorLandsatMss5()
{
GetDlgItem(IDC_HEADER_SENSOR)->SetWindowText("Landsat MSS5");
m_bhMSS5 = TRUE;
}
void CImageInitiate::OnSensorLandsatTm4()
{
GetDlgItem(IDC_HEADER_SENSOR)->SetWindowText("Landsat TM4");
m_bhTM4 = TRUE;
}
void CImageInitiate::OnSensorLandsatTm5()
{
GetDlgItem(IDC_HEADER_SENSOR)->SetWindowText("Landsat TM5");
m_bhTM5 = TRUE;
}
void CImageInitiate::OnSensorLandsatTm7()
{
GetDlgItem(IDC_HEADER_SENSOR)->SetWindowText("Landsat TM7");
m_bhTM7 = TRUE;
}
void CImageInitiate::OnSensorModis()
{
GetDlgItem(IDC_HEADER_SENSOR)->SetWindowText("MODIS");
m_bhMODIS = TRUE;
}
void CImageInitiate::OnSensorSpot1()
{
GetDlgItem(IDC_HEADER_SENSOR)->SetWindowText("SPOT1");
m_bhSPOT1 = TRUE;
}
void CImageInitiate::OnSensorSpot4()
{
GetDlgItem(IDC_HEADER_SENSOR)->SetWindowText("SPOT4");
m_bhSPOT4 = TRUE;
}
总结:
该类提供了初始化遥感图像所需的基本功能,包括选择图像格式、传感器类型和设置图像大小等。通过该类的使用,可以方便地创建和管理遥感图像。
注意:
- 该代码需要在 Visual Studio 等 IDE 中进行编译。
- 该代码需要包含相应的头文件和库文件。
- 该代码仅供参考,具体实现可能需要根据实际情况进行调整。
原文地址: https://www.cveoy.top/t/topic/jnwn 著作权归作者所有。请勿转载和采集!