Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: VC8.0
How do I place the dialog at the right bottom in the MFC dialog base?
 
The position should remain the same when it is used with the other monitors too.
 
What I mean is, the dialog should be in the right bottom of the window above the taskbar. RIGHTBOTTOM in all the monitors.
Posted 6-Jan-11 20:16pm
Edited 6-Jan-11 22:56pm
v4
Comments
Gokulnath007 at 7-Jan-11 3:46am
   
Thank u...
Dalek Dave at 7-Jan-11 3:33am
   
Edited for Syntax and Readability.
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

There is an API to display dialog in center of the screen i.e. CenterWindow() but
I don't know if there is direct API to display it at bottom right corner.
My suggestion is first calculate the screen coordinates
 
void GetScreenSizeInPixels( SIZE& s)
{
    ZeroMemory( &s, sizeof(SIZE) );
    s.cx = (LONG)::GetSystemMetrics( SM_CXMAXTRACK );
    s.cy = (LONG)::GetSystemMetrics( SM_CYMAXTRACK );
}

 
Than calculate the Dialog size using GetClientRect and than calculate the position and now use SetWindowPos with property SWP_NOSIZE.
 

May be this will help you.
  Permalink  
v2
Comments
Gokulnath007 at 7-Jan-11 2:20am
   
Yes.. Great.. Solved it... Thank u..
Shilpi Boosar at 7-Jan-11 2:23am
   
I found that you have eagerness to learn things :) keep it up...
Gokulnath007 at 7-Jan-11 3:49am
   
Shortly I am going to release my article.. Thank u.. Shilpi
Dalek Dave at 7-Jan-11 3:34am
   
Good Answer.
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

RECT screen;
::GetWindowRect(::GetDesktopWindow(), &screen);
RECT dlg;
GetWindowRect(&dlg);	
int width = dlg.right - dlg.left ;
int height = dlg.bottom - dlg.top ;	
int xlen = screen.right - width ;
int ylen = screen.bottom - height;
this->MoveWindow(xlen-2,ylen-60,width,height+30,TRUE);
  Permalink  
v2
Comments
Richard MacCutchan at 7-Jan-11 4:13am
   
Added <pre> tags for readability.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 245
1 Kamal Rocks 184
2 Sergey Alexandrovich Kryukov 175
3 BillWoodruff 173
4 PIEBALDconsult 160
0 OriginalGriff 5,655
1 DamithSL 4,506
2 Maciej Los 3,997
3 Kornfeld Eliyahu Peter 3,480
4 Sergey Alexandrovich Kryukov 3,180


Advertise | Privacy | Mobile
Web01 | 2.8.141216.1 | Last Updated 7 Jan 2011
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100