Click here to Skip to main content
15,896,207 members
Articles / Desktop Programming / MFC

Resize/Reposition the Controls in a Dialog at your Pleasure

Rate me:
Please Sign up or sign in to vote.
4.55/5 (38 votes)
1 Mar 2006CPOL7 min read 239.7K   8.8K   65  
You can resize or reposition the controls in your dialog derived from CSizingDialog to anywhere you wish just by specifying some simple strings or numbers. In addition, most kinds of controls almost don't flicker when moving, which is often a problem in some other solutions.
//////////////////////////////////////////////////////////////////////////
// 
// CSizingDialog V2.1
// 
// Copyright 2005 Xia Xiongjun( ���۾� ), All Rights Reserved.
//
// E-mail: xj-14@163.com
//
// This source file can be copyed, modified, redistributed  by any means
// PROVIDING that this notice and the author's name and all copyright 
// notices remain intact, and PROVIDING it is NOT sold for profit without 
// the author's expressed written consent. The author accepts no 
// liability for any damage/loss of business that this product may cause.
//
//////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////
// SizingDialog.h 

#pragma once

#include "SizingSP.h"


//////////////////////////////////////////////////////////////////////////
// CSizingDialog dialog

class CSizingDialog : public CDialog
{
	DECLARE_SIZING_SUPPORT()

// Constructors
public:
	CSizingDialog(LPCTSTR lpszSection = NULL, LPCTSTR lpszEntry = NULL);
	explicit CSizingDialog(UINT nIDTemplate, CWnd* pParentWnd = NULL, 
		LPCTSTR lpszSection = _T("Placement"), LPCTSTR lpszEntry = _T("MainDialog"));

// Implementation
protected:
	afx_msg void OnPaint();
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnDestroy();
	afx_msg UINT OnNcHitTest(CPoint point);
	DECLARE_MESSAGE_MAP()

// Data
private:
	LPCTSTR			m_lpszSection;
	LPCTSTR			m_lpszEntry;
	BOOL			m_bEnableRWP;		// Enable to restore the window placement
	BOOL			m_bErase;			// Enable erase background
};

class CSizingFormView : public CFormView
{
};

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

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


Written By
Software Developer
China China
_____________________________
Xia Xiongjun loves this site. Smile | :)

Comments and Discussions