Подмена символа
Всем привет!
Возникла проблема следующего характера есть CEdit контрол, мне нужно заменить некоторые символы в нем, делаю следующее
Код:
CMyEd::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
nChar=(int)'q';
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
По идее все символы должны менятся на q но этого не происходит. Делал следующее:
Код:
CMyEd::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
СSTring str;
GetWindowText(str);
str+="q";
SetWindowText(str);
//CEdit::OnChar(nChar, nRepCnt, nFlags);
}
Все работает НО коретка всегда в начале строки, на CMyEd у меня поставлен DDV_MaxChars, который перестал ограничивать кол-во вводимых символов.
Что нужно сделать чтоб заработал 1 вариант?
Спасибо за рание!
|
Как всегда пришлось немного поизвращятся и получился следующий код
Код:
CMyEd::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
CString str;
GetWindowText(str);
if(nChar>31)
{
switch(nChar)
{
case 'q':
str+="rr";
break;
default:
str+=(char)nChar;
break;
}
}
if(nChar==8)
str.Delete(str.GetLength()-1);
if(str.GetLength()<100)
SetWindowText(str);
SetSel(str.GetLength(),str.GetLength(),0);
}
единственный минус это неподдерживает вставки т.е. ctrl+v
|
Время: 09:32.
© OSzone.net 2001-