Можно ли получить доступ к стандартным строкам Windows, таким как «Отмена»?

Посмотрите, удовлетворяются ли ваши потребности с помощью DialogFragment. DialogFragment имеет метод увольнения (). На мой взгляд, гораздо более чистым.

16
задан John Saunders 11 August 2010 в 04:39
поделиться

3 ответа

В Visual Studio: File + Open + File введите c: \ windows \ system32 \ user32.dll. Откройте узел String Table и дважды щелкните String Table. Прокрутите вниз до 800.

Microsoft занимает довольно серьезную позицию против использования этих идентификаторов ресурсов. Однако, учитывая количество программистов, которые сделали то, о чем вы думаете, маловероятно, что они когда-либо смогут изменить эти цифры. Вам потребуется P / Invoke LoadLibrary () и LoadString ().

Однако ваш главный провал в этом плане - Vista / Win7 Ultimate с языковыми пакетами MUI. Это позволяет пользователю переключаться между языками без обновления строк ресурсов в библиотеках DLL. В таком издании всегда будут английские струны.

12
ответ дан 30 November 2019 в 22:37
поделиться

Что ж, если вы используете стандартную функцию MessageBox.Show () и передаете ей соответствующие параметры, она автоматически локализует для вас кнопки да / нет / окей / отменить .

Что более интересно, так это то, как вы локализуете текст сообщения.

3
ответ дан 30 November 2019 в 22:37
поделиться

Нет, не существует стандартного поддерживаемого способа сделать это. Да, Windows действительно хранит эти строки, и их (с некоторыми усилиями) можно получить, но нет гарантии, что они останутся в одном месте и под одним и тем же идентификатором от версии к версии.

Хотя вы, возможно, не хотите, чтобы это был ответ, ответ на самом деле заключается в локализации вашего приложения. Если вы локализуете все остальное (как и вам пришлось бы, если только вы просто не хотели локализовать OK и Отменить ), я не уверен почему было бы очень сложно включить локализованные значения для OK и Cancel .

1
ответ дан 30 November 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: