开发者

Visual C++ 2008 Express, encapsulation of discrete GUI elements into separate files

I would like to make my own compenents using, and for, VC9 & Visual Studio 2008 Express. Currently my top level Form classes contain too much code for my liking, and I want to grow them.

I can safely get as far as Project->Add...->Component_Class.

Next I name and populate the component with, say, a text box, submit button, and panel to represent tabs for the different channels the comment can be submitted to (all, team, opponent) with a rich text box below which I will update depending on the tab selected.

Only trouble is I am breaking the

#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>

When I come to setting positions for my sub-components.

That and I can't get this new component into my toolbox.

Is it possible with VC++2008 Express?

_EDIT_

So I followed this, http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=151764&SiteID=1 advice and got the com开发者_JAVA技巧ponent in my toolbox.

Problem now is it is just 'unvisual' as the image lists sitting in their own bar off of the Form design area :(

Will try to extend a more substantial class than

System::ComponentModel::Component

_EDIT_

I've since answered this myself and tidied up the title and tags for future reference.


The following article is about creating custom controls in Visual Studio and C#, I hope it is useful to you. It looks like it might be in an older version of VS/C#, but the Windows Forms stuff is quite old anyway

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

You might want to consider writing WPF applications as an alternative to Windows Forms - this is a more up to date technology for building desktop applications for Windows, and some of the technology is shared with other Microsoft tools such as Silverlight.

And here is a tutorial for how to build custom controls in WPF if you're interested:

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

Update: So looking at the capabilities of VS2008Express - you can't make WPF custom controls, so clearly if you're limited to that environment then you're going to have to go with Windows Forms. The tutorial is above.


If anyone is interested, I found how to create custom components in VC++ 2008.

You don't use the Forms designer but must do it programmatically. Well, I cheated and got most of the code from a proto-mock-up which I first created with the Form Designer.

The source of this info was the SDK documentation for the UserControl class,

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

By adding the sample code in the above linke to my project I was able to add it as visual component using the Forms Designer by selecting

"Tools > Options > Windows Forms Designer > General : AutoToolboxPopulate"

I've now offloaded all my GUI code to their own classes and generally I add the following

#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;

before namespace myProjNS { and proceeding to declare a class which extends some other Forms component.

I now appreciate the merits of the above answers, but they all require C# which was not available on my limited system at the time I asked the question.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜