Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 433
от 27.12.2003, 03:40

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 1354
Отправлено ответов: 2903
Активность: 214.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Avl2k
Статус: Профессиональный
Общий рейтинг: 124.25
[Подробней >>]
Phenix
Статус: Опытный
Общий рейтинг: 114.91
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1345. Hi! Спасибо за ответы на 1335 и 1338. Продолжение вопроса номер 1335(см приложение). Будьте добры пр... (ответов: 1)
Вопрос № 1346. Hi! Подскажите, пожалуйста, как определить какая всплывающая менюшка выбрана? Пробовал как в приложе... (ответов: 1)
Вопрос № 1347. Хочу немного подучить с++ Но с пониманием нерусских языков у меня проблемма. Где бы взять руководств... (ответов: 1)

Вопросов: 3, ответов: 3


 Вопрос № 1345

Hi!
Спасибо за ответы на 1335 и 1338.
Продолжение вопроса номер 1335(см приложение).
Будьте добры пример использования такого dll.
В нете ничего пока не нашел.
With best regards.
alexneta.


Приложение:


Вопрос отправлен: 23.12.2003, 20:55
Отправитель: alexneta (alexneta@bezeqint.net)

[Следующий вопрос >>] [Список вопросов]

Отвечает Avl2k

Приветствую Вас, alexneta!
Вариантов несколько:
1. Если надо переводить исключительно строки, то достаточно простого текстового файла. Из этого файла грузим содержимое в map вида <идентификатор_строки, локализованная_строка>. Когда надо, ищем в этом map'е строку по заданному идентификатору.
2. Надо локализовывать строки, диалоги, меню, иконки и т.д.
Есть два варианта:
a) Создать одну dll с ресурсами на всех языках. Тогда используем так (для MFC):
HMODULE resModule = LoadLibrary( "res.dll" );
AfxSetResourceHandle( resModule );
SetThreadLocale( lang );
CDialog dlg1( ID_DLG1 );
dlg1.DoModal();
AfxSetResourceHandle( AfxGetInstanceHandle() );
FreeLibrary(resModule);
Странно, но у меня на W2K SP4 это работает для всех случаев, кроме того, когда нужный язык ресурсов совпадает с текущим языком пользователя Windows. Интересно, как MS этого добился???? Видимо, глючит функция FindResource, которая используется в MFC, а вот FindResourceEx - работает.
b) Создать свою dll для каждого языка.
Используем точно также, только грузим разные dll'ки в зависимости от языка.
С уважением, Avl2k.

Ответ отправлен: 25.12.2003, 18:36
Отправитель: Avl2k


 Вопрос № 1346

Hi!
Подскажите, пожалуйста, как определить какая всплывающая менюшка выбрана?
Пробовал как в приложении, но GetMenu возвращает null, так как в моей программе имеется только всплывающее меню.
Если можно пример.
With best regards.
alexneta.


Приложение:


Вопрос отправлен: 23.12.2003, 22:45
Отправитель: alexneta (alexneta@bezeqint.net)

[Следующий вопрос >>] [Список вопросов]

Отвечает Avl2k

Здравствуйте, alexneta!
Не совсем понятно, где Вы все это делаете. Я так понял, что "всплывающая менюшка" - это popup menu. Тогда это пишется обычно так:
на OnRButtonDown:
CMenu m;
m.LoadMenu( IDR_MENU1 );
CMenu* pop = m.GetSubMenu( 0 );
pop->TrackPopupMenu( 0, 0, 0, this );
Если Вам нужно, чтобы некоторый пункт был с галочкой, то проще всего завести в классе флажок, в обработчике COMMAND этого ID его переключать, а в обработчике UPDATE_COMMAND_UI это ID написать что-то вроде:
void CMyWnd::OnUpdateCmd1(CCmdUI* pCmdUI)
{ pCmdUI->SetCheck( m_flag ); }
С уважением, Avl2k.


Ответ отправлен: 25.12.2003, 18:51
Отправитель: Avl2k


 Вопрос № 1347

Хочу немного подучить с++
Но с пониманием нерусских языков у меня проблемма.
Где бы взять руководство, где всё объясняется с нуля (то есть объясняется каждый символ)
Таких подробных пособий я пока не видел. Буду очень рад, если вы мне поможете.
З.Ы. Если не трудно - дубрировать ответ по почте, а то я боюсь, что не скоро в сети буду.
Удачи.



Вопрос отправлен: 23.12.2003, 23:58
Отправитель: Летящий (gabforever@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Phenix

Добрый день, Летящий!
Посмотри эти адреса, там очень хорошие справочники!
http://www.zsu.zp.ua/lab/MathDep/ApMath/OOP/index1.htm
http://www.zsu.zp.ua/lab/MathDep/ApMath/cppbuilder/

Ответ отправлен: 24.12.2003, 01:25
Отправитель: Phenix



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (27)
C / C++ (18)
Perl (4)
Builder / Delphi (19)
Pascal (22)
Basic / VBA (3)
Java / JavaScript (5)
PHP (10)
Криптография (7)
WinAPI (12)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (50)
"Железо" (27)
Поиск информации (19)
Администратору
Windows NT/2000/XP (27)
Linux / Unix (15)
Юристу
Гражданское право (14)
Семейное право (9)
Трудовое право (10)
КоАП (9)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное