Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Два вопроса по VC++.NET2003 
:(
    Опции темы
Maksim
Дата 5.4.2004, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2004

Репутация: нет
Всего: нет



Всем привет!
Подскажите плиз если не сложно...

1. При создании проекта в окне Application Type есть поле Resource language. В том пакете который я приобрёл (на 8 дисках, Enterprise Architect) в этом поле есть все языки кроме русского. Можно как-то где-нибудь скачать и подгрузить русский файл? Или это вообще нереально?
Если попробовать, например, пункты меню сделать на русском, то вместо слов абракадабра... Как исправить?

2. Как передать значение из DDX переменной соответствующему объекту и наоборот? Прочитал что это делается с помощью функции UpdateData, но она не передаёт ничего. Более того, скачал файлик с примером, там эта функция присутствует и работает как надо, но перед загрузкой этого примера выдаётся сообщение что он был сделан в другой версии студии и требуется его конвертировать. После конвертирования всё там работает, но внутрь UpdateData по F11 не залезает, чем она отличается от моей непонятно...

Заранее спасибо,
с уважением, Максим.

PM   Вверх
chipset
Дата 5.4.2004, 02:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 1
Всего: 165



если ты знаешь как сделать Label мембером формы, тогда перед тем как осущствлять передачу делай UpdateData(FALSE);
а в конце после всего UpdateData(TRUE);
или наооборот... точно не помню...
пытаюсь понять куда майкрософт засунула ClassWizard и главное ЗАЧЕМ? adv/63.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Maksim
Дата 5.4.2004, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2004

Репутация: нет
Всего: нет



Я наверно что-то не понимаю, но:
по Тому Арчеру UpdateData нужно делать не до и после передачи, а она и есть передача. С параметром TRUE значение из объекта (допустим edit control) передаётся в его DDX переменную, c FALSE наоборот - значение переменной передаётся объекту... Никаких дополнительных передач не треба...

Вот, например, почему так получается:
если войти по F11 в UpdateData (мою), затем войти в DoDataExchange, то там видим следующий код:

void CERR_diaDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}

тогда как Арчер в своей DoDataExchange видит вот это:

void CERR_diaDlg::DoDataExchange(CDataExchange* pDX)
{
DDX_Text(pDX, IDC_EDIT1, m_strVariable);
CDialog::DoDataExchange(pDX);
}

Этот код генерится автоматически в обоих случаях, так почему в моей версии студии не происходит обращение к DDX_Text? А ведь именно поэтому не работает - если её ручками добить, то всё ОК, но хотелось бы знать причину...


Упс! Вот, нашёл ответ, по-моему:

This problem can be chalked up to the joys of writing a book while working on a beta product smile.gif As a result when the UI changed in Visual Studio, that particular demo became incorrect. Here's how to solve the problem. Instead of checking or unchecking the "Control variable" check box, you need to select the appropriate entry in the Category combo box. Long story, short. Microsoft using ambiguous terms to represent two different things. Checking the "Control variable" checkbox is how you tell Visual Studio that you're either creating a simple member variable for a class (non-DDX) or you're creating a DDX variable that will be associated with a control on the dialog. The Category combo box is where you state whether you're creating a value DDX member variable or a control DDX member variable. In this case, you need to keep the "Control variable" checked and select Value from the Category combo box. You'll then see a default type of CString. Simply specify the variable name (m_strMessage for the book's demo), click the Finish button and the DDX_Text function call will be correctly inserted into the dialog's DoDataExchange member function.

Я не слишком силён в ангицком, но суть понятна.

Это сообщение отредактировал(а) Maksim - 5.4.2004, 23:27
PM   Вверх
Maksim
Дата 5.4.2004, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2004

Репутация: нет
Всего: нет



Всё, со вторым вопросом более или менее разобрался.
Остаётся первый smile.gif
PM   Вверх
Maksim
Дата 5.4.2004, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2004

Репутация: нет
Всего: нет



А-у-у!
Что, у всех русский resource language присутствует изначально? Меню на русском никто не делал никогда?
PM   Вверх
AntonSaburov
Дата 6.4.2004, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 6
Всего: 118



Цитата
При создании проекта в окне Application Type есть поле Resource language.

Я просто меню всегда создавал ручками, поэтому не сталкивался. А где такое окно искать надо ?
PM MAIL WWW ICQ   Вверх
Maksim
Дата 6.4.2004, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2004

Репутация: нет
Всего: нет



Имеется ввиду окно создания проекта - MFC Application Wizard, вкладка Application Type, там раскрывающийся список Resource language. Хотя мож оно к меню и не относится, не знаю, но русского там нет и меню не получается на русском. Мож совпадение...

Вот скриншот:

http:\\oldslav.chat.ru\pro\ex.gif
PM   Вверх
Guest
Дата 16.4.2004, 00:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
1. При создании проекта в окне Application Type есть поле Resource language. В том пакете который я приобрёл (на 8 дисках, Enterprise Architect) в этом поле есть все языки кроме русского. Можно как-то где-нибудь скачать и подгрузить русский файл? Или это вообще нереально?
Если попробовать, например, пункты меню сделать на русском, то вместо слов абракадабра... Как исправить?


Есть в MSDN такая информация:

When you install Visual Studio, the setup application detects the locale listed in your system and installs the appropriate language template or templates for that locale. For example, for Western European locales, setup installs English, French, Italian, Spanish, and German. These languages appear in the Resource language list on the Application Type page of the MFC Application Wizard.

Not all templates are installed on all systems, because the templates are ANSI encoding based, and not all resources can be edited on all systems. For example, by default, you cannot edit Japanese resources on a French system.

If you are using Windows 2000 or later and you want to create an MFC application in another language, then you must copy the template directory for the appropriate language from the Visual Studio CD to your system.

Note To edit the created project, you must set your system locale to the appropriate locale for the selected language.
The templates are each assigned a folder in the \Microsoft Visual Studio .NET 2003\Vc7\VCWizards\mfcappwiz\templates\ directory, as listed in the following table . To access the desired language template, copy the appropriate folder to the \mfcappwiz\templates\ directory on your computer. Once you have copied the folder, the language will appear in the Resource language list on the Application Type page of the MFC Application Wizard.

Пожалуйста, посмотрите у себя на инсталляционном CD соответствующую поддиректорию, согласно указанному выше. Может быть, там есть и русские ресурсы. Я сам не проверял, но надеюсь на наличие. Если у Вас нет этого CD или, все же, нет там русских ресурсов, то я могу посмотреть тогда у себя и прислать Вам - куда укажете. Но, может быть, я не совсем правильно понимаю Ваш вопрос и Ваша проблема заключается не в самом русском ресурсе, то есть его содержании, а в отображении его на экране - например, в меню. Тогда перейдите на UNICODE и проблемы не будет.


Цитата
2. Как передать значение из DDX переменной соответствующему объекту и наоборот? Прочитал что это делается с помощью функции UpdateData, но она не передаёт ничего. Более того, скачал файлик с примером, там эта функция присутствует и работает как надо, но перед загрузкой этого примера выдаётся сообщение что он был сделан в другой версии студии и требуется его конвертировать. После конвертирования всё там работает, но внутрь UpdateData по F11 не залезает, чем она отличается от моей непонятно...


UpdateData работает как надо, и именно так как надо Вам. Я это сейчас проверил и на V.Studio 6.0, и на V.Studio .NET 2003. Надо соответствено указывать для данного метода значение аргумента: TRUE - значения передаются от диалоговых объектов переменным, а при FALSE - наоборот. Если переменные введены Вами средствами визуальной разработки или же вручную и правильно (то есть все сделано для DDX), то UpdateData работает.

  Вверх
Maksim
Дата 10.5.2004, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 5.4.2004

Репутация: нет
Всего: нет



Да, точно, у меня на установочном диске нет русского ресурса!
Буду очень благодарен если получу его smile.gif
Пожалуйста, пришлите его, кто-нибудь!

[email protected]

Заранее спасибо.
PM   Вверх
[ t.i.m. ]
Дата 24.6.2004, 12:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нет необходимости искать русскоязычную dll...

Просто забей на абракадабру, поставь язык при мастере оздания на Английский, а когда визард произведет все построения и перед тобой будет редактор с диалогом.
Зайди в Resource View, выбери ресурс с диалогом (типа IDD_SOMEMY_DIALOG), а потом переключись на Properties View, там в пункте Language выберешь Русский.
Не удивляйся если лейбл с написанными русскими буквами останется абракадаброй... Просто тектс в поле Caption заново надо набрать...
Попробуй, если не поможет пиши еще...

[ t.i.m. ]
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.