做一个单文档的程序,需要根据显示器不同,自适应显示器大小。
首先是,需要自动修改程序框体大小。
以前都是在基于对话框的应用程序中这么弄。只要在对话框的初始化函数OnInitDialog()中调用MoveWindow就可以解决了。
类似下面这样的做法
------------------------------------------------------------------------------
CRect rect;
rect.left=0;
rect.top=0;
rect.right=200;
rect.bottom=100;
MoveWindow(&rect);
------------------------------------------------------------------------------
显然单文档是不行的。
对于单文档(SDI)与多文档(MDI)的应用程序,就需要重写窗口的 PreCreateWindow函数了。
VS2010的工程引导程序生成的程序就已经有了相关的函数就去修改下就可以了。
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWndEx::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE
| WS_THICKFRAME |WS_MINIMIZEB