如何改变下一个字符将被放置在MFC编辑控件中的位置



我有一段代码,擦除字符串的最后一个字符,然后将Edit Control中的文本设置为该新字符串。问题是,之后,接下来要输入的字符的位置发生了变化。例子:

编辑控制框:[12345|](斜杠是下一个字符输入后将放置)

完成上述代码后

编辑控制框:[|12345](位置现在移动到前面,1)

之前

如何再次将位置移动到字符串的末尾?我的代码:

    CString str1 = ""; //Temporary CString
    eb1->GetWindowText(str1); //Store text from Edit Control to the CString
    string strCheck1 =  str1.GetString(); //Place the CString into a regular string
    int s1 = strCheck1.length() -1; //Get index of last character and new size
    bool check1 = true; //Boolean variable for the checking
    //Get if character is valid
    if((strCheck1[s1] <= '0' || strCheck1[s1] >='9') && strCheck1[s1] != '.') {check1 =       false;}
    //If is invalid I erase last character and put it back intact into the Edit Control
    if(check1 == false) {strCheck1.erase(s1,1); eb1->SetWindowTextA(strCheck1.c_str());}

你试过SetSel()操作编辑控件吗?

// get the initial text length
int nLength = edit.GetWindowTextLength();
// put the selection at the end of text
edit.SetSel(nLength, nLength);

您可以使用CEdit::SetSel()(我假设您正在使用CEdit)。只要让选择的开始和结束都是字符串的结束,你应该可以把光标移动到那里。详见http://msdn.microsoft.com/en-us/library/w9kftda4(v=vs.80).aspx

相关内容

  • 没有找到相关文章

最新更新