BorlandTalk.com Forum Index BorlandTalk.com
Borland discussion newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

How can I create an application like BCB IDE

 
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> C++ Builder (Native API)
View previous topic :: View next topic  
Author Message
Carlos
Guest





PostPosted: Wed May 09, 2007 5:59 pm    Post subject: How can I create an application like BCB IDE Reply with quote



Hello,

I don´t want use MDI for my applications. but I need a Main toolbar (like
BCB IDE)
and work windows (cpp files, forms, ...).
When you maximize any window all work windows are maximized to Main Toolbar.

How can I set forms properties for emulate this system ?

Regards
Back to top
Ron Sawyer
Guest





PostPosted: Thu May 10, 2007 2:47 am    Post subject: Re: How can I create an application like BCB IDE Reply with quote



Quote:
When you maximize any window all work windows are maximized to Main
Toolbar.

If I understand correctly, the solution appears below. Before I post it:
credit where it is due.

Harold Howe used to have an excellent how-to site. When he shut it down he
graciously allowed us to download a word document from the site. This post
is taken direction from his document.

Many Windows programs create secondary forms that minimize to the taskbar.
For example, MS Exchange opens a new window when you read a mail message,
and these windows minimize to the taskbar. Netscape creates different
windows for its browser, news reader, and mail reader, and each window
minimizes to the taskbar. Come to think of it, having forms that minimize to
the desktop isn't too useful, and not many apps seem to work that way.

A window will minimize to the taskbar if its extended window style contains
the WS_EX_APPWINDOW style. By default, secondary forms do not have this
style set. You can make a form minimize to the taskbar by overriding the
CreateParams function and altering the extended windows style. Use this code
from the secondary form.

void __fastcall TForm2::CreateParams(TCreateParams &Params)

{

TForm::CreateParams(Params);

Params.ExStyle |= WS_EX_APPWINDOW;

}

In addition to making a form minimize to the taskbar, you will also want to
change the owner of the secondary form. By owner, I mean the owner window of
the form in API terms, not the VCL owner. The hidden application window owns
all forms in a C++Builder program. The OS hides all owned windows when their
owner window is hidden or minimized. When you create an independent form
that minimizes to the taskbar, this behavior will seem awkward. To fix the
problem, set the WndParent member of TCreateParams to the result of
GetDesktopWindow. This makes the desktop the owner of the form, and prevents
the form from being hidden when you minimize the main form of the program.

void __fastcall TForm2::CreateParams(TCreateParams &Params)

{

TForm::CreateParams(Params);

Params.ExStyle |= WS_EX_APPWINDOW;

Params.WndParent = GetDesktopWindow();

}

Remember that changing the WndParent member of CreateParams does not affect
who deletes the form object.
Back to top
Carlos
Guest





PostPosted: Thu May 10, 2007 3:49 pm    Post subject: Re: How can I create an application like BCB IDE Reply with quote



Thank you Ron,

It help me. But it does not solve the entire problem.

I can´t maximize to Main toolbar of Main Form (emulating BCB Ide )
And when I click in main form secundary form goes to hidden state.

Regards

"Ron Sawyer" <XXXRSAWYER8128XQQXX (AT) aol (DOT) com> escribió en el mensaje de
noticias news:46424187 (AT) newsgroups (DOT) borland.com...
Quote:
When you maximize any window all work windows are maximized to Main
Toolbar.
If I understand correctly, the solution appears below. Before I post it:
credit where it is due.

Harold Howe used to have an excellent how-to site. When he shut it down
he
graciously allowed us to download a word document from the site. This
post
is taken direction from his document.

Many Windows programs create secondary forms that minimize to the taskbar.
For example, MS Exchange opens a new window when you read a mail message,
and these windows minimize to the taskbar. Netscape creates different
windows for its browser, news reader, and mail reader, and each window
minimizes to the taskbar. Come to think of it, having forms that minimize
to
the desktop isn't too useful, and not many apps seem to work that way.

A window will minimize to the taskbar if its extended window style
contains
the WS_EX_APPWINDOW style. By default, secondary forms do not have this
style set. You can make a form minimize to the taskbar by overriding the
CreateParams function and altering the extended windows style. Use this
code
from the secondary form.

void __fastcall TForm2::CreateParams(TCreateParams &Params)

{

TForm::CreateParams(Params);

Params.ExStyle |= WS_EX_APPWINDOW;

}

In addition to making a form minimize to the taskbar, you will also want
to
change the owner of the secondary form. By owner, I mean the owner window
of
the form in API terms, not the VCL owner. The hidden application window
owns
all forms in a C++Builder program. The OS hides all owned windows when
their
owner window is hidden or minimized. When you create an independent form
that minimizes to the taskbar, this behavior will seem awkward. To fix the
problem, set the WndParent member of TCreateParams to the result of
GetDesktopWindow. This makes the desktop the owner of the form, and
prevents
the form from being hidden when you minimize the main form of the program.

void __fastcall TForm2::CreateParams(TCreateParams &Params)

{

TForm::CreateParams(Params);

Params.ExStyle |= WS_EX_APPWINDOW;

Params.WndParent = GetDesktopWindow();

}

Remember that changing the WndParent member of CreateParams does not
affect
who deletes the form object.

Back to top
Display posts from previous:   
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> C++ Builder (Native API) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.