Setting the initial position of a dialog-based application

void CAppDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) { if (lpwndpos->cx = -1) if (lpwndpos->cy = -1) // is init time { lpwndpos->x = 0; // change here if you want to move left or right the window. lpwndpos->y = 0; // change here if you want to move top or bottom the window. } CDialog::OnWindowPosChanging(lpwndpos); }

Explanation

After CreateDialogIndirect, the MFC call CenterWindow. The last line of this function call SetWindowPos with position of window, and with -1, -1, as width and height of window. So the WM_WINDOWPOSCHANGING is obviously.

Date Last Updated: April 19, 1999



Comments

  • Fixed Position Dialog?

    Posted by Legacy on 09/25/2003 12:00am

    Originally posted by: Jon Ha

    Hey Xiaolong Li (or anybody who can answer),
    
    

    What is the actual code that can be used to fix the position of a dialog box? I do not want the dialog to be movable, even when the mouse drags the top title bar of the dialog. is this possible??

    thanks very much!

    Jon

    Reply
  • Works Great

    Posted by Legacy on 04/09/2003 12:00am

    Originally posted by: Trent

    I added the code to my program and it works well.

    Thanks a lot

    Reply
  • Modeless

    Posted by Legacy on 12/25/2002 12:00am

    Originally posted by: Dep

    In the modeless option this solution doesn't work...

    Reply
  • Hiding a modal dialog on startup

    Posted by Legacy on 04/30/2002 12:00am

    Originally posted by: Bosyotik

    You can hide a modal dialog on startup like this:
    
    

    1) Add a BOOL member variable on your CDialog class and intialize it to TRUE

    class CYourDialod: public CDialog
    {
    // ...
    private:
    BOOL m_bHideOnStart;
    }

    CYourDialog::CYourDialog(CWnd* pParent /*=NULL*/)
    : CDialog(CUpgraderDlg::IDD, pParent), m_bHideOnStart(TRUE);
    {
    //...
    }

    2) Handle WM_WINDOWPOSCHANGING message

    void CYourDialog::OnWindowPosChanging(WINDOWPOS* lpwndpos)
    {
    CDialog::OnWindowPosChanging(lpwndpos);
    if((lpwndpos->flags & SWP_SHOWWINDOW) && m_bHideOnStart){
    lpwndpos->flags &= ~SWP_SHOWWINDOW;
    m_bHideOnStart=FALSE;
    }
    }

    Reply
  • Setting position

    Posted by Legacy on 10/17/2000 12:00am

    Originally posted by: Wayne Irons

    Setting the initial position of the dialog is working fine, but how can I also set the initial size? It seems that even if I set lpwndpos->cx and ->cy, they're ignored because SetWindowPos was called with SWP_NOSIZE as a flag...

    Reply
  • How to begin Application with a maximised window size?

    Posted by Legacy on 05/17/2000 12:00am

    Originally posted by: Manish

    If u have developed a dialog based or any SDI/MDI application ,
    
    what should be done in order to open it in maximised window size..??
    my addy ,Logmanish@yahoo.com

    Reply
  • Use DialogBox's properties if the position is fixed

    Posted by Legacy on 04/20/1999 12:00am

    Originally posted by: Xiaolong Li

    Easier way:

    1. Select your DialogBox from resource, get "Properties"
    2. "General" Tab: fill "X Pos" and "Y Pos"
    3. "More Styles" Tab: check "Absolute Align".

    Reply
  • SetWindowPos() works

    Posted by Legacy on 04/19/1999 12:00am

    Originally posted by: Joselito Santana

    Sure you can use SetWindowPos().  You can call it in OnInitDialog. All you have to do is
    
    

    SetWindowPos(NULL, X, Y, NULL, NULL, SWP_NOSIZE |
    SWP_NOZORDER | SWP_SHOWWINDOW);

    where X and Y are values in pixels.

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • The enterprise has experienced a data explosion over the past few years that has redefined the possible. In the HP eBook Big Data 20/20, HP experts explore what the future of Big Data and analytics means for that enterprise. The widely varied deluge of data in companies presents both challenges and opportunities to deliver greater value and gain competitive advantage.

  • While successful mobile apps can elevate and transform your brand, hidden deployment disasters can tear down all your hard work in the blink of an eye. Download this white paper to avoid disasters of: Scale Microdowntime and connectivity Location data Upfront costs

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date