![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Valentin |
|
|||
|
Unregistered |
Библиотека MFC и среда разработки MS Visual Studio обеспечивают разработчику выбор средств, позволяющих ввести в MFC-приложение такие элементы пользовательского интерфейса как, например, меню, toolbars, диалоговые панели. В том числе, обеспечивается и возможность ввести эти элементы в ресурсы приложения и, по мере необходимости, загружать их в память оттуда. Насколько я могу судить для случая Windows Forms-приложения (WFApp - сокращение мое), библиотека классов FCL и инструментарий MS Visual Studio .NET не имеют собственных прямых средств для организации этих UI-элементов именно на базе ресурсов приложения. Конечно, это не представляется принципиально трудной задачей, и можно, например, привлечь для решения ее средства Win32 API или использовать в таком приложении и библиотеку MFC. Или, в конце концов, вообще не использовать ресурсы приложения. Но хотелось бы получить информацию и советы от опытных программистов о том, (i) как для WFApp они организуют свой пользовательский интерфейс на базе ресурсов, включая и подключение обработчиков сообщений (команд). То есть, каковы здесь стандартные приемы и культура программирования? Заодно хотелось бы узнать, (ii) как в таком же приложении (то есть, WFApp) рационально подключить функцию-член какого-либо класса к требующемуся сообщению Windows (а не к событию, определенному для FCL-класса).
Спасибо! |
|||
|
||||
| Valentin |
|
|||
|
Unregistered |
Извините, последний вопрос не совсем точно сформулировал. Имеется в виду:
Как во Windows Forms-приложении подключить функцию-член какого-либо класса (а вообще-то, и просто функцию) к сообщению Windows (а не к событию, определенному в FCL-классе), в качестве обработчика этого сообщения? |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Простите, а зачем?
Я, конечно, понимаю - это не ответ на вопрос (сейчас пытаюсь найти ответ..), но все-таки?.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Kurt |
|
||||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Аааа... Кажется, понял.. Посмотри в сторону класса NativeWindow. Я с таким пока сильно не работал, так самую малость. Фактически ты будешь создавать native-объект, к-й GC просто так не уберет.. Короче, вот - отыскал тебе примерчик, тут показано как со всем этим работать:
ИМХО, разработчики сделали ВСЕ от них зависящее, чтоб простой народ как можно реже применял обработчики сообщений окна Тебе это надо было? Угадал?.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||
|
|||||
| Valentin |
|
|||
|
Unregistered |
Уважаемый Kurt!
Большое спасибо Вам за внимание к моим вопросам и Ваш исчерпывающий ответ. Фактически, он отвечает на оба мои вопроса, так как, для меня, они связаны между собой. По моим рабоче-крестьянским соображениям новичка в .NET, можно, вероятно, для подключения обработчиков сообщений Windows использовать также и метод Form::PreProcessMessage, хотя я не проверял еще это. Но применение указанной Вами методики является, безусловно, более логичным и, как мне кажется, более универсальным. Что касается Вашего вопроса, зачем мне это нужно, то, например, мне так легче обеспечить без перепрограммирования приложений поддержку многоязычности пользовательского интерфейса и переключения языков. Вводишь в приложение новые языковые ресурсы в любом количестве и добавляешь программный код, определяющий их количество и осуществляющий их выборку в память приложения. Для .NET платформы такая схема особенно упрощается, учитывая концепцию сборок (assembly). Что касается вопроса о подключении обработчиков сообщений Windows, то, надеюсь, это мне позволит более квалифицированно решать задачи низкоуровнего программирования, с которыми мне ранее (до знакомства с .NET) приходилось сталкиваться. Вообще говоря, заданные мной вопросы возникли после беглого освоения мной основ программирования для платформы .NET. Я перебирал в памяти разные приемы, которые использовал ранее при разработке программ в MS Visual C++, и задумался над тем, все ли я смогу реализовать программно для .NET, из того, что делал ранее и из того, что надо бы уметь делать. Конечно, .NET платформа многие моменты исключает. Но многие все же остаются. Буду рад быть полезным и Вам, если смогу. С Уважением, Валентин Рига [email protected] |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Я Вас понимаю..
Хотя, все-таки, мне кажется, используя .NET стоит избегать таких извращений.(обработка native-сообщений..) Вобщем, всегда рад помочь. Заходите! -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |