Visual C ++ 2008 Express, инкапсуляция отдельных элементов графического интерфейса в отдельные файлы - PullRequest
0 голосов
/ 28 июля 2011

Я хотел бы создать свои собственные компоненты, используя и для VC9 & Visual Studio 2008 Express. В настоящее время мои классы форм верхнего уровня содержат слишком много кода на мой вкус, и я хочу их увеличить.

Я могу безопасно добраться до Project-> Add ...-> Component_Class.

Далее я называю и заполняю компонент, скажем, текстовым полем, кнопкой отправки и панелью для представления вкладок для различных каналов, на которые можно отправить комментарий (все, команда, оппонент) с помощью расширенного текстового поля, под которым Я буду обновлять в зависимости от выбранной вкладки.

Единственная проблема в том, что я ломаю

#pragma region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>

Когда я подхожу к настройке позиций для своих подкомпонентов.

Это и я не могу добавить этот новый компонент в свою панель инструментов.

Возможно ли это с VC ++ 2008 Express?

_ EDIT _

Итак, я последовал этому совету http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=151764&SiteID=1 и получил компонент в своем наборе инструментов.

Проблема сейчас в том, что это просто «невидно», поскольку списки изображений расположены в отдельной панели вне области дизайна формы: (

Попытается расширить более существенный класс, чем

System :: ComponentModel :: Компонент

_ EDIT _

С тех пор я сам ответил на это и убрал заголовок и теги для дальнейшего использования.

Ответы [ 2 ]

0 голосов
/ 01 августа 2011

Если кому-то интересно, я нашел способ создания пользовательских компонентов в VC ++ 2008.

Вы не используете конструктор форм, но должны это делать программно.Ну, я обманул и получил большую часть кода от прототипа, который я сначала создал с помощью дизайнера форм.

Источником этой информации была документация SDK для класса UserControl,

http://msdn.microsoft.com/en-us/library/system.windows.forms.usercontrol%28v=VS.90%29.aspx

Добавив пример кода из вышеупомянутой ссылки в мой проект, я смог добавить его в качестве визуального компонента с помощью конструктора форм, выбрав

"Инструменты>Параметры> Конструктор Windows Forms> Общие: AutoToolboxPopulate "

Теперь я выгрузил весь свой код GUI в их собственные классы и, как правило, добавляю следующий

#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>

using namespace System;
using namespace System::Windows::Forms;
using namespace System::Drawing;
using namespace System::ComponentModel;

до namespace myProjNS { и приступаю к объявлению класса, который расширяет какой-то другой компонент Forms.

Теперь я ценю преимущества приведенных выше ответов, но все они требуют C #, который не был доступен в моей ограниченной системе на момент, когда я задал вопрос.

0 голосов
/ 28 июля 2011

Следующая статья о создании пользовательских элементов управления в Visual Studio и C #, я надеюсь, что это будет полезно для вас.Похоже, что это может быть в более старой версии VS / C #, но Windows Forms в любом случае довольно старая

http://www.akadia.com/services/dotnet_user_controls.html

Возможно, вы захотите рассмотреть написание приложений WPF в качестве альтернативыв Windows Forms - это более современная технология для создания настольных приложений для Windows, и часть этой технологии используется совместно с другими инструментами Microsoft, такими как Silverlight.

А вот руководство по созданию пользовательскихэлементы управления в WPF, если вам интересно:

http://www.abhisheksur.com/2011/07/writing-reusable-custom-control-in-wpf.html

Обновление : Итак, глядя на возможности VS2008Express - вы не можете создавать пользовательские элементы управления WPF, поэтомуОчевидно, что если вы ограничены этой средой, вам придется использовать Windows Forms.Учебник выше.

...