Set minimum size of a window

How can I use WinAPI to set a minimize size for a window?
also, can I set a maximum size too?
LVL 1
leealAsked:
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.

tma050898Commented:
You need to handle the WM_GETMINMAXINFO message and fill out the passed structure as to the min and max of your window.

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
leealAuthor Commented:
Can you give me more details?
0
tma050898Commented:
Actually, I need more details. What language are you using?
0
Introduction to Web Design

Develop a strong foundation and understanding of web design by learning HTML, CSS, and additional tools to help you develop your own website.

leealAuthor Commented:
I am using VB5.
0
tma050898Commented:
I was afraid you were going to say that ;)

Ok. I haven't touched VB since 3.0, but believe or not, the only time I've ever used the WM_GETMINMAXINFO msg was from a VB app. When I used VB it did not provide programmers the ability to handle Windows messages. IOW, programmers could only select events from a fixed set of events for each object. Therefore, we used a product from Desaware called Spy Works in order to handle Windows messsages. So the questions are...

1. Does VB5 now allow you to directly handle Windows messages (as opposed to picking from a fixed set of events for an object)?
2. If not, do you have a product like SpyWorks or a similar competitor's product (e.g., Sheridan, MicroHelp, etc.)???

0
leealAuthor Commented:
1. ummm, I'm not sure. But there's an "addressof" operator that can return the address of a procedure.
2. no, I don't.
0
bbarberCommented:
Can you process the WM_SIZE message which is passed to any window that receives a command to resize. Then if the size requested is not within your boundries, set it to your min or max value.
0
tma050898Commented:
bbarber,
No. The only way to do this is by handling the WM_GETMINMAXINFO msg.  A struct is passed in this msg that has min max tracking members. Setting these will cause windows to not allow the window to be size beyond the ranges specified by the application.

The problem leeal is having is that vb doesn't allow for the handling of msgs that aren't inherently supported and presented in a static list of events. I've done what he wants to do with SpyWorks because they have a vbx and an ocx that allows vb applications to receive and process windows msgs. However, he doesn't have SpyWorks or any other tool.

leeal,
Sorry about not posting in a couple of days. It took me two days to finally found track down free tool that does what you want. It's called MsgHook and can be downloaded for free at www.download.com 

If this is the way you want to go, download it and play with it. From what I've read it will do what you need. I've never used it, but if you have any problems post a new question and I (or another expert) will help in any way we can.

Tom




0
leealAuthor Commented:
Thanks, Tom.
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
Microsoft Development

From novice to tech pro — start learning today.