在良好示例中使用滑块控件






2.21/5 (11投票s)
简单的加密解密器。
引言
之前我们学习了如何使用一个有意义的第一个程序,现在我尝试使用滑块控件进行练习,就像我在第一个示例中使用的按钮和编辑控件一样。
Using the Code
这个想法很简单。获取输入字符串的 ASCII 码,将其分解为字符,然后使用从键(滑块控件)获得的一定代码来移动每个 ASCII 码。
如何操作?即使对我来说也很简单;作为一个初学者,我以为这将是一个很大的挑战。我们将创建一个新的 MFC 项目,然后添加两个按钮;一个编辑控件和一个滑块控件。然后我们为滑块控件添加一个成员变量,并将其命名为 m_ctrlSlide
,类型为 CSliderCtrl
。我们还应该为编辑控件添加另一个成员变量,类型为 CString
,并将其命名为 m_ctrlEdit
。我将此字符串中的最大字符数限制为 80,您可以根据需要进行修改。
m_CtrlSlider.SetRange(0,13);
m_CtrlSlider.SetTicFreq(13);
之后,简单的编程练习将开始,我们将为每个按钮分配一个函数来反转另一个按钮,即加密和解密。
以下源代码是我在每个处理程序中执行的操作。
//The encrypt function
void CCaesarsEncrypterDlg::OnBnClickedEncrypt()
{
// TODO: Add your control notification handler code here
CString strTmp;
int m_nKey,m_nlength;
m_nKey=m_CtrlSlider.GetPos();
UpdateData(TRUE);
m_nlength=m_strText.GetLength();
for(int i=0;i<m_nlength;i++)
{
char cTemp = m_strText[i];
cTemp += m_nKey;
strTmp += cTemp;
}
m_strText = strTmp;
UpdateData(FALSE);
}
//The encrypt function---------------------------------------------
void CCaesarsEncrypterDlg::OnBnClickedDecrypt()
{
// TODO: Add your control notification handler code here
CString strTmp;
int m_nKey,m_nlength;
m_nKey=m_CtrlSlider.GetPos();
UpdateData(TRUE);
m_nlength=m_strText.GetLength();
for(int i=0;i<m_nlength;i++)
{
char cTemp = m_strText[i];
cTemp -= m_nKey;
strTmp += cTemp;
}
m_strText = strTmp;
UpdateData(FALSE);
}
最后一点说明:此程序不是为了加密目的而设计的,而是为了学习如何读取滑块控件并对其进行处理。虽然此应用程序不像它应该的那样将最后一个 ASCII 字符旋转到第一个字符,但您可以在消息传递工具中玩弄它 :-)。
祝您愉快!
历史
- 2008 年 3 月 5 日:初始发布