Страница 1 из 1

Нельзя переименовать компонент на русском языке.

Добавлено: 05 май 2008, 13:24
dzorya
В свойствах выделенного компонента при изменении наименования или псевдонима на русском пишутся иероглифы, на английском все ок.

Нельзя переименовать компонент на русском языке.

Добавлено: 05 май 2008, 16:22
Vital
Здравствуйте,

Мы не можем вопроизвести эту проблему. А где конкретно отображаются иероглифы вместо русского?

Спасибо.

Нельзя переименовать компонент на русском языке.

Добавлено: 06 май 2008, 09:44
dzorya
Я исправил ошибку. Она была связанна с тем, что я использовал контрол редактора в MFC приложении (окна данного приложения не Unicode). При открытии Unicode окон возникает ошибка при получении сообщения WM_CHAR. Данная проблема решается следующим образом:
[DllImportAttribute("user32.dll")]
public static extern bool IsWindowUnicode(IntPtr hWnd);

protected override bool ProcessKeyPreview(ref Message m)
{
if (m.Msg == 0x102 && m.WParam.ToInt32() <= 255)
{
if (IsWindowUnicode(m.HWnd))
m.WParam = new IntPtr(Encoding.GetEncoding("windows-1251").GetChars(new byte[] { (byte)m.WParam.ToInt32() })[0]);
}
return base.ProcessKeyPreview(ref m);
}

Нельзя переименовать компонент на русском языке.

Добавлено: 06 май 2008, 13:56
Vital
Здравствуйте,

Скажите пожалуйста в каком месте Вы использовали этот код?

Спасибо.

Нельзя переименовать компонент на русском языке.

Добавлено: 07 май 2008, 15:36
dzorya
Данный код можно использовать в любом родительском контроле, который содержит контрол редактора. Я использовал его в .net контроле, который содержит только один контрол – контрол редактора; в свою очередь данный контрол используется как ActiveX MFC приложением. Данная ситуация достаточно уникальна, не думаю что похожая ошибка проявится у других ваших заказчиков. Если нужна более подробная информация: вы можете писать мне на почту или ICQ.