C++ 调整MFC窗口的大小

C++ 调整MFC窗口的大小,c++,mfc,C++,Mfc,我有一个MFC应用程序,我已经工作了几个星期了,我想手动设置主框架的尺寸,当它加载时,有人能帮我一把,特别是在哪里放置代码呢 谢谢 使用..查找屏幕大小 CRect rect; SystemParametersInfo(SPI_GETWORKAREA,0,&rect,0); screen_x_size=rect.Width(); screen_y_size=rect.Height(); 使用这些值计算窗口的X和Y大小,然后 ::SetWindowPos(m_hWnd,HWND_TO

我有一个MFC应用程序,我已经工作了几个星期了,我想手动设置主框架的尺寸,当它加载时,有人能帮我一把,特别是在哪里放置代码呢


谢谢

使用..查找屏幕大小

CRect rect;
SystemParametersInfo(SPI_GETWORKAREA,0,&rect,0);
screen_x_size=rect.Width();  
screen_y_size=rect.Height();
使用这些值计算窗口的X和Y大小,然后

::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,main_x_size,main_y_size,SWP_NOZORDER); 

其中
main\u x\u size
main\u y\u size
是您的尺寸。

我想您正在寻找,并且您的应用程序不是基于对话框的

它是CWnd类的虚拟成员函数,在创建窗口之前由框架调用。因此,这是一个放置更改的正确位置

你应该这样写:

BOOL CMyWindow::PreCreateWindow(CREATESTRUCT& cs)
{
   cs.cy = 640; // width
   cs.cx = 480; // height
   cs.y = 0; // top position
   cs.x = 0; // left position
   // don't forget to call base class version, suppose you derived you window from CWnd
   return CWnd::PreCreateWindow(cs);
}
您还可以从
CMainFrame::OnCreate()
内或
CWinApp
-派生类“
InitInstance
中设置大小(使用
SetWindowPos()
)。查找显示
pMainFrame->ShowWindow()
的行,并在该行前面调用
pMainFrame->SetWindowPos()
。这就是我一直在做的事情。

你可以用这个:

CRect rect;
SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0);
left = -3, right = 3;
rect.top = 100;
rect.bottom = 500;
rect.left = 100;
rect.right = 800;
//or use
CRect cr;
cr.SetRect(POINT{ 100,100 }, POINT{ 500,800 });
MoveWindow(rect);

SPI_GETWORKAREA仅获取主监视器的大小。对于整个虚拟桌面,请使用以下命令:int desktopW=GetSystemMetrics(SM_CXVIRTUALSCREEN);int desktopH=GetSystemMetrics(SM_CYVIRTUALSCREEN);它可以工作,但您必须在
MainFrm.cpp
中编辑
PreCreateWindow
,而不是在视图类中编辑。您还没有回答完整的问题,也没有解释代码是如何工作的。请围绕你的答案提供一点背景来帮助提问者。