void CVC_VB1Dlg::OnChangeEdit1() 
{
         char str[81];
if(m_edit1>'a'&m_edit1<'z')
m_edit1=m_edit1+32;//m_edit1 为CVC_VB1Dlg的一个属性
else if(m_edit1>'A'&m_edit1<'Z')
m_edit1=m_edit1-32;
     else 
         char(m_int1)='*';
      //m_cedit1.UpdateData(false);  
m_cedit1.GetWindowText (str,81);
m_cedit2.SetWindowText (str);
}
   m_cedit1\m_cedit2 为CVC_VB1Dlg的一个CEdit控件属性
我在对话框上建了两个CEdit控件;
我要实现的结果是:边在m_cedit1中输入字符,边在m_cedit2中显示出来(
    实现大小互换,其它字符变为*)
请问怎样实现?

解决方案 »

  1.   

    UpdateData(false);
    取出第一个中的字符串
    修改最后一个字符的大小写状态
    显示在第二个里面
    只更新第二个编辑框
      

  2.   

    beijingshizi 
    能否写代码出来,我不是很明
    别是取一个字符
      

  3.   

    将第二个EDIT的属性中的styles->Uppercase选上,然后相应第一个EDIT的EN_CHANGE的消息,然后代码如下:
    void CTestDialogDlg::OnChangeEdit1() 
    {
    CString csInput;
    char szInput[255];
    int nIndex; GetDlgItem(IDC_EDIT1)->GetWindowText(csInput); strcpy(szInput, csInput.GetBuffer(csInput.GetLength()));
    csInput.ReleaseBuffer(); for(nIndex=0; nIndex <csInput.GetLength(); nIndex++)
    {
    if(!((szInput[nIndex]>='a' && szInput[nIndex]<='z') ||
               (szInput[nIndex]>='A' && szInput[nIndex]<='Z')))
             szInput[nIndex] = '*';
      } csInput.Format("%s", szInput);
    GetDlgItem(IDC_EDIT2)->SetWindowText(csInput);
    }就这样就行了.
      

  4.   

    第一编辑框  m_strEdit1
    第二编辑框  m_strEdit2把下列代码放在OnChangeEdit1()中
    char ch;
    m_strEdit2="";
    for(i=0;i<m_strEdit1.GetLength();i++)
    {
        ch=m_strEdit1[i];
        if(ch>='a'&&ch<='z') 
            m_strEdit2+=ch+32;
        else
            if(ch>'A'&&ch<='Z')
                m_strEdit2+=ch-32;
            else
                m_strEdit2+='*';
    }
    UpdateData(false);