Caption of a Form

In VB4, how can I have the Caption of a Form not in upper left side (as usually), but in the middle? (I also do not like the solution  to type Spaces in the Caption Properties to move the Caption to the center)
giannAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

R_RajeshCommented:
Hi giann,

Try this:
http://www.ostrosoft.com/vb/projects/center.asp

Cheers!

Raj
0
Richie_SimonettiIT OperationsCommented:
hearing...
0
BaskerCommented:
The best way to do it is draw your own caption in the window.
Pls look for the article in MSDN

HOWTO: Draw a Custom Window Caption
ID: Q99046

This will give you enough information. But the code is in C, so you should convert it to Visual Basic

0
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

Mike TomlinsonHigh School Computer Science, Computer Applications, and Mathematics TeachersCommented:
The short answer is that there is no way to center a caption on the form without adding spaces, either at design time, or in the resize event to keep it centered.

The long answer is that you can subclass your form and draw the non client area (title bar) yourself.  This has many headaches that go along with it.
0
dancebertCommented:
The answer you don't want to hear is that the reason it's not easy to do this in VB is because having a window's caption left justified is a Windows GUI standard.  
0
Richie_SimonettiIT OperationsCommented:
The drawback is: cost is too high for a little award.
0
giannAuthor Commented:
The code that R_Rajesh suggests works. It centers the form caption.
 
But the problem is that when I change (by right click on my screen) the windows theme in  screen properties from classical windows to Windows Xp, then the Caption of the Form moves a little more right and it is not centered any more.
(Otherwise I would have no problem to type spaces)
0
Mike TomlinsonHigh School Computer Science, Computer Applications, and Mathematics TeachersCommented:
The reason for this is that the code makes a guess as to how big the control box on the left, and the min/max/close buttons on the right are, by using the hard coded number 1300.

If WindowState <> vbMinimized Then
    If Width < iCap + 1300 Then Width = (iCap + 1300)
        Caption = String((Width - (iCap + 1300)) / (2 * i), " ") & txt
End If

When you change themes, the actual size of these controls changes and the code breaks.  In fact, if you take out the min/max buttons without changing themes the centering will be off.

The point is, there is no way to center the text exactly under all conditions.

Idle_Mind
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
DeuceEECommented:
Well, technically, you can predict any case and make it centered. But it's really a lot to go through -- API again! There's a function, I think, called GetSystemMetrics() and it returns a bunch of information about "anything" "measureable" in Windows. You can get the size of the min/max/close buttons, do the necessary calculations, and center accordingly using spaces. No one would ever want to do that, I tell you.
0
Mike TomlinsonHigh School Computer Science, Computer Applications, and Mathematics TeachersCommented:
You are right DeuceEE, I'm sure there is a way to correctly calculate the necessary number of spaces to center the caption.

My point was that there isn't a precise way to center the text using only the values returned from the Form.Width property combined with the width of the caption from the TextWidth() function.

Idle_Mind
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.