есть строка в анси каждый ее символ передается по WM_CHAR в эдит. так вот когда влючена руская раскладка то все нормально, а когда преключаешься на английский язык в эдит в ставляются каракозябры. Как исправить?
можно подробнее, какая связь между раскладкой и строкой: или сначала строка вводится разными раскладками, или строка готовая, просто на разных языках? и какая ось?
проверил: invoke SendDlgItemMessage,hWin,1002,WM_CHAR,0ffh,0 вставляет "я", а если фф поменять на 61 - то "а" латинскую. функции анси.
ОС Windows XP. Строка готовая(получается из элемента TreeView). Код такой: while(*p) SendDlgItemMessage(hmw, IDC_EDIT1, WM_CHAR, *(p++), 0); Так вот если он выполняется когда включена русская раскладка клавиатуры, то вставляется строка, к примеру: "Группа(6)", а если включена английская раскладка, то: "A?oiia(6)".
а эдит анси или юникод? если юникод, так он может конвертировать код текущей "нажатой" клавиши из анси в юникод в соответствии с текущей раскладкой клавиатуры, вот ты и получаешь западноевропейский аналог кириллицы. может, лучше другим способом в эдит дописывать, через ЕМ_... ?