📄 dlgmorph.cpp
字号:
m_bStru16 = FALSE;
m_bStru17 = FALSE;
m_bStru18 = FALSE;
m_bStru19 = FALSE;
m_bStru20 = FALSE;
m_bStru21 = FALSE;
m_bStru22 = FALSE;
m_bStru23 = FALSE;
m_bStru24 = FALSE;
// 更新文本框状态
UpdateEdit();
// 更新
UpdateData(FALSE);
}
void CDlgMorph::OnCircle()
{
//5×5圆形结构元素
m_nMode = 2;
m_nStruW = 5;
m_nStruH = 5;
m_nStruXc = 2;
m_nStruYc = 2;
m_bStru00 = FALSE;
m_bStru01 = TRUE;
m_bStru02 = TRUE;
m_bStru03 = TRUE;
m_bStru04 = FALSE;
m_bStru05 = TRUE;
m_bStru06 = TRUE;
m_bStru07 = TRUE;
m_bStru08 = TRUE;
m_bStru09 = TRUE;
m_bStru10 = TRUE;
m_bStru11 = TRUE;
m_bStru12 = TRUE;
m_bStru13 = TRUE;
m_bStru14 = TRUE;
m_bStru15 = TRUE;
m_bStru16 = TRUE;
m_bStru17 = TRUE;
m_bStru18 = TRUE;
m_bStru19 = TRUE;
m_bStru20 = FALSE;
m_bStru21 = TRUE;
m_bStru22 = TRUE;
m_bStru23 = TRUE;
m_bStru24 = FALSE;
// 更新文本框状态
UpdateEdit();
// 更新
UpdateData(FALSE);
}
void CDlgMorph::OnRect()
{
//5×3矩形结构元素
m_nMode = 3;
m_nStruW = 5;
m_nStruH = 3;
m_nStruXc = 2;
m_nStruYc = 1;
m_bStru00 = TRUE;
m_bStru01 = TRUE;
m_bStru02 = TRUE;
m_bStru03 = TRUE;
m_bStru04 = TRUE;
m_bStru05 = TRUE;
m_bStru06 = TRUE;
m_bStru07 = TRUE;
m_bStru08 = TRUE;
m_bStru09 = TRUE;
m_bStru10 = TRUE;
m_bStru11 = TRUE;
m_bStru12 = TRUE;
m_bStru13 = TRUE;
m_bStru14 = TRUE;
m_bStru15 = FALSE;
m_bStru16 = FALSE;
m_bStru17 = FALSE;
m_bStru18 = FALSE;
m_bStru19 = FALSE;
m_bStru20 = FALSE;
m_bStru21 = FALSE;
m_bStru22 = FALSE;
m_bStru23 = FALSE;
m_bStru24 = FALSE;
// 更新文本框状态
UpdateEdit();
// 更新
UpdateData(FALSE);
}
void CDlgMorph::OnHori()
{
//3×1水平结构元素
m_nMode = 4;
m_nStruW = 3;
m_nStruH = 1;
m_nStruXc = 1;
m_nStruYc = 0;
m_bStru00 = TRUE;
m_bStru01 = TRUE;
m_bStru02 = TRUE;
m_bStru03 = FALSE;
m_bStru04 = FALSE;
m_bStru05 = FALSE;
m_bStru06 = FALSE;
m_bStru07 = FALSE;
m_bStru08 = FALSE;
m_bStru09 = FALSE;
m_bStru10 = FALSE;
m_bStru11 = FALSE;
m_bStru12 = FALSE;
m_bStru13 = FALSE;
m_bStru14 = FALSE;
m_bStru15 = FALSE;
m_bStru16 = FALSE;
m_bStru17 = FALSE;
m_bStru18 = FALSE;
m_bStru19 = FALSE;
m_bStru20 = FALSE;
m_bStru21 = FALSE;
m_bStru22 = FALSE;
m_bStru23 = FALSE;
m_bStru24 = FALSE;
// 更新文本框状态
UpdateEdit();
// 更新
UpdateData(FALSE);
}
void CDlgMorph::OnVert()
{
//1×3垂直结构元素
m_nMode = 5;
m_nStruW = 1;
m_nStruH = 3;
m_nStruXc = 0;
m_nStruYc = 1;
m_bStru00 = TRUE;
m_bStru01 = FALSE;
m_bStru02 = FALSE;
m_bStru03 = FALSE;
m_bStru04 = FALSE;
m_bStru05 = TRUE;
m_bStru06 = FALSE;
m_bStru07 = FALSE;
m_bStru08 = FALSE;
m_bStru09 = FALSE;
m_bStru10 = TRUE;
m_bStru11 = FALSE;
m_bStru12 = FALSE;
m_bStru13 = FALSE;
m_bStru14 = FALSE;
m_bStru15 = FALSE;
m_bStru16 = FALSE;
m_bStru17 = FALSE;
m_bStru18 = FALSE;
m_bStru19 = FALSE;
m_bStru20 = FALSE;
m_bStru21 = FALSE;
m_bStru22 = FALSE;
m_bStru23 = FALSE;
m_bStru24 = FALSE;
// 更新文本框状态
UpdateEdit();
// 更新
UpdateData(FALSE);
}
void CDlgMorph::OnCustom()
{
// 自定义模板
m_nMode = 6;
// 更新文本框状态
UpdateEdit();
}
void CDlgMorph::OnKillfocusEditStruH()
{
// 更新
UpdateData(TRUE);
// 更新文本框状态
UpdateEdit();
}
void CDlgMorph::OnKillfocusEditStruW()
{
// 更新
UpdateData(TRUE);
// 更新文本框状态
UpdateEdit();
}
void CDlgMorph::OnKillfocusEditStruXc()
{
// 更新
UpdateData(TRUE);
// 更新文本框状态
UpdateEdit();
}
void CDlgMorph::OnKillfocusEditStruYc()
{
// 更新
UpdateData(TRUE);
// 更新文本框状态
UpdateEdit();
}
void CDlgMorph::OnOK()
{
// 获取用户设置(更新)
UpdateData(TRUE);
// 判断设置是否有效
if ((m_nStruW < 0) || (m_nStruXc > m_nStruW - 1) ||
(m_nStruH < 0) || (m_nStruYc > m_nStruH - 1))
{
// 提示用户参数设置错误
MessageBox("中心元素参数设置错误!", "系统提示" ,
MB_ICONINFORMATION | MB_OK);
// 返回
return;
}
int Mask[200];
m_nMaskLen = 0;
int i, j, k = 0;
//根据对检查框的选择状态给结构元素赋值(记录的相应点的X,Y坐标)
for(i = 0; i < m_nStruH; i++)
{
for(j = 0; j < m_nStruW; j++)
{
//IDC_STRU00等ID其实是一个整数,它的数值定义在Resource.h中定义。
//获取相应检查框控件的指针
CButtonST *pCheckBox = (CButtonST *) GetDlgItem(IDC_STRU00 + i * 5 + j);
//检查框的状态
if(pCheckBox->GetCheck() == 1)
{
//结构元素计数(以点数为计数单位)
m_nMaskLen++;
Mask[k] = j - m_nStruXc;
k++;
Mask[k] = m_nStruYc - i;
k++;
}
}
}
//创建记录结构元素的数组
m_npMask = new int [2 * m_nMaskLen];
//将统计出的结构元素拷贝到m_npMask指向的数组中
memcpy(m_npMask, Mask, 2 * m_nMaskLen * sizeof(int));
CDialog::OnOK();
}
void CDlgMorph::OnChangeEditStruXc()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
// 更新
UpdateData(TRUE);
// 更新文本框状态
UpdateEdit();
}
void CDlgMorph::OnChangeEditStruYc()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
// 更新
UpdateData(TRUE);
// 更新文本框状态
UpdateEdit();
}
void CDlgMorph::OnChangeEditStruH()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
// 更新
UpdateData(TRUE);
// 更新文本框状态
UpdateEdit();
}
void CDlgMorph::OnChangeEditStruW()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
// 更新
UpdateData(TRUE);
// 更新文本框状态
UpdateEdit();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -