2011-12-04 44 views
0

我有一段代碼會擦除字符串的最後一個字符,然後將編輯控件中的文本設置爲該新字符串。問題在於,之後,將要輸入的字符的位置會改變。 示例:如何更改下一個字符將放置在MFC的編輯控件中的位置?

編輯控制框:[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());} 

回答

1

您是否嘗試過編輯控件的SetSel()操作?

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

出於某種原因,瀏覽功能時,我認爲CEdit :: SetSel是選擇像突出顯示它的字符,而不是這個;我想我應該嘗試。謝謝。 – Artie

相關問題