65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.21/5 (11投票s)

2008 年 3 月 5 日

CPOL

1分钟阅读

viewsIcon

53841

downloadIcon

2234

简单的加密解密器。

引言

之前我们学习了如何使用一个有意义的第一个程序,现在我尝试使用滑块控件进行练习,就像我在第一个示例中使用的按钮和编辑控件一样。

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 日:初始发布
© . All rights reserved.