?
Solved

Resizing the window

Posted on 1998-06-05
18
Medium Priority
?
495 Views
Last Modified: 2013-11-20
How could I resize the window at the same ratio?
Which the message I should attach to match this purpose?
And what I should do, just changing the cx and cy member?
0
Comment
Question by:mauling
  • 6
  • 5
  • 3
  • +4
18 Comments
 
LVL 1

Expert Comment

by:chacko
ID: 1316079
Try MoveWindow function.
0
 

Author Comment

by:mauling
ID: 1316080
It just not function!!!!
0
 
LVL 3

Expert Comment

by:tma050898
ID: 1316081
The SetWindowPos function can be used to size and/or move the window...

if you have a CWnd object for the window being moved...
   pYourWindow->SetWindowPos(&wndTop, 0, 0, 100, 200, SWP_NOMOVE);      

if you are moving the window from within the CWnd object's code
   SetWindowPos(&wndTop, 0, 0, 100, 200, SWP_NOMOVE);      

if you don't have a CWnd object for the window being moved (for example, the window belongs to another app)...
 CWnd wnd;
 wnd.Attach(hwndOfDesiredWindow);
 wnd.SetWindowPos(&wndTop, 0, 0, 100, 200, SWP_NOMOVE);      
 wnd.Detach();

The second and third parameters are the x and y (for moving) positions of the window. However, if you pass SWP_NOMOVE in the last argument, the window only will be resized and not moved. The cx and cy (for sizing) values are the third and fourth arguments, respectively.

Tom

0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 3

Expert Comment

by:tma050898
ID: 1316082
Accidentally clicked Comment instead of Answer. See my comment below for proposed answer...
0
 

Author Comment

by:mauling
ID: 1316083
Sorry, Tom, I think I didn't make the question clear.
What I need is be able to resize the client window at the same ratio when resizing it with the mouse. I am using the MFC. I had tried the following code.

void CTst::OnSize(UINT nType, int cx, int cy)
{
      
      int min;
      if (cx>cy)
            min = cy;
      else
            min = cx;

      CView::OnSize(nType, min, min);
}

But the client window keep with the size cx and cy.

Ps: I tried your answer putting it just before CView::OnSize, but unfornately it didn't function yet.

Thanks for your attention.


0
 
LVL 2

Expert Comment

by:kinkajou
ID: 1316084
"How could I resize the window at the same ratio?"

What do you mean resize at the same ratio? Do you mean you only want cx to move the same amount as cy when using a mouse? Please be more specific.
0
 

Author Comment

by:mauling
ID: 1316085
Well, what I want is always a square window.
0
 
LVL 3

Expert Comment

by:shaig
ID: 1316086
Override the OnSizing member. there do adjustments with cx and cyy.
0
 

Author Comment

by:mauling
ID: 1316087
What I want to do is unable the resizing by dragging on the vertical border or horizontal border of the window with the mouse. But would be enable dragging on the corner of the window.
0
 
LVL 3

Expert Comment

by:tma050898
ID: 1316088
Sorry, mauling, but that won't work either. That was the first thing I thought about. However, if you will notice, when you size from the corner, you are not restricted to sizing cx and cy equally.
0
 
LVL 3

Expert Comment

by:tma050898
ID: 1316089
I have no idea how the hell that turned up as an answer. My connection dropped last night while I was attempting to make a *comment*. Please reject that, as it was only intended as an observation of something you said.
0
 
LVL 1

Expert Comment

by:amby
ID: 1316090
I think I have an answer for you...
0
 
LVL 3

Expert Comment

by:tma050898
ID: 1316091
mauling,

Please reject my inadvertant "answer" so that the question can be "opened" up to other experts.

Thanks,
Tom
0
 
LVL 1

Expert Comment

by:amby
ID: 1316092
you can handle the WM_WINDOWPOSCHANGING message,

the parameter of this message is a structure containing window position, try modifying the parameters of this structure
0
 
LVL 2

Expert Comment

by:jonalee
ID: 1316093
If you want always a square window. Just try the following code. Is the CTst the Parent Frame of the CView? If so, then you only needs to resize the Parent Frame, the client will automatically resize.

void CTst::OnSize(UINT nType, int cx, int cy)
{

     int min;
     if (cx>cy)
      min = cy;
     else
      min = cx;

     SetWindowPos(0, 0, min, min, SWP_NOMOVE);
}

0
 

Author Comment

by:mauling
ID: 1316094
Hey, Amby, answer again in order for me to give you the point, OK.
0
 
LVL 1

Accepted Solution

by:
amby earned 200 total points
ID: 1316095
I am Amby and I am Happy...


0
 

Author Comment

by:mauling
ID: 1316096
Amby, Thanks!
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction: Load and Save to file, Document-View interaction inside the SDI. Continuing from the second article about sudoku.   Open the project in visual studio. From the class view select CSudokuDoc and double click to open the header …
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
With just a little bit of  SQL and VBA, many doors open to cool things like synchronize a list box to display data relevant to other information on a form.  If you have never written code or looked at an SQL statement before, no problem! ...  give i…
Suggested Courses
Course of the Month14 days, 7 hours left to enroll

807 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question