| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Сообщение "Please enter an integer between..." |
| Автор: ILAgent 1.3.2006, 22:40 |
| Ситуация такая. Вот кинул я на диалог Edit control, связал с ним переменную типа инт с заданным диапазоном значений (от -100 до 100). Когда при работе приложения я ввожу туда значение, не являющееся целым числом из заданного диапазона, и нажимаю кнопку, вызывающую UpdateData(), выводится соответствующее сообщение. Но по-английски. А надо - по-русски. Что посоветуете ? |
| Автор: DeadSoul 1.3.2006, 23:01 |
| Язык в ресурсах диалога менял? |
| Автор: takedo 2.3.2006, 07:26 |
| по началу все хотят использовать DDX, но потом все потихоньку от него отказываются, поэтому делай проверки ручками и сам. |
| Автор: Dreamer_0x01 2.3.2006, 12:58 |
| Я кстати тоже от этого отказался... |
| Автор: Earnest 2.3.2006, 14:53 | ||
| Русифицировать сообщения MFC можно: их слишком много, чтобы все ручками переделывать. Я знаю 2 способа: 1й способ - только русско-язычное приложение: В каталоге MFC\include есть папки с локализациями l.fra, l.esp и т.д. Туда нужно поместить аналогичную папку l.rus (содержимое перевести ручками- там не много). Затем, в редакторе ресурсов открываешь Resourse Includes, находишь строчку #include "afxres.rc" // Standard components и заменяешь на #include "l.rus\afxres.rc" // Standard components Естественно, язык ресурсов, как уже было сказано, ставишь русским. 2й способ: годится для двуязычного интерфейса Где-нибудь в InitInstance пишешь примерно такой код:
Вместо Mfc42loc.dll нужно написать имя локализованной библиотеки своей версии. Вот где ее взять - извини, не помню. Вроде бы в system32 должны лежать локализованные версии mfc-ресурсов. |
| Автор: Earnest 2.3.2006, 15:34 |
| CaptainFlint, А ты где брал? Я точно не у тебя с сайта качала. Где их берут-то - не напомнишь? |
| Автор: ILAgent 2.3.2006, 20:13 |
| CaptainFlint, спасибо за русификатор, помог. И всё же я, наверное, откажусь от DDX, как советует takedo. Ещё раз всем спасибо ! |
| Автор: CaptainFlint 2.3.2006, 20:24 |
| Earnest Давным-давно, когда деревья были зелёными, когда MS только мечтала о мировом господстве в мире программирования, а Visual C++ 6.0 была ультра-современной средой, нашёлся один добрый человек, который создал такой пакетик для этой среды. Время шло, в пакетике обнаруживались разные ляпы, ошибки, да и просто непереведённые куски. Некто CaptainFlint (тогда ещё и не помышлявший называть себя таким ником) пытался по глупости своей связаться с автором сего проекта, дабы указать на несообразности и нижайше попросить обновления. Но все его усилия пропали даром: официального сайта не нашлось, а по E-mail'у то ли никто не отвечал, то ли сам адрес оказался несуществующим. Вздохнул тогда тяжко CaptainFlint, и решил: была не была, попробую-ка я сам исправить ошибки найденные. И исправил он ошибки найденные, и выложил обновлённый пакетик, заявив самонадеянно, что, раз такая ситуация, то отныне он будет этот пакет поддерживать и обновлять... Вот и весь сказ. |
| Автор: Earnest 4.3.2006, 18:27 |
| Понятно, теперь будем брать русификацию у тебя Да здравствуют пираты! (в смысле, капитан Флинт) |