自定义MFC窗口大小的话,可以用下面的方法,重载BOOL PreCreateWindow(CREATESTRUCT& cs) 函数。
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs))
return FALSE;
// TODO: Modify the Window class or styles here bymodifying
// the CREATESTRUCTcs
csdwExStyle&= ~WS_EX_CLIENTEDGE;
cslpszClass = AfxRegisterWndClass(0);
csstyle |= WS_CLIPCHILDREN|WS_CLIPSIBLINGS;
cscx = 1000;//窗口宽度
cscy = 800;//窗口高度
return TRUE;
}
在mfc中,view视图类窗口的大小有两个,一个是可视窗口大小,一个是逻辑窗口大小。
在没有滚动条的情况下,两个大小相同,使用getclientrect就可以获取大小:
crect rt;
getclientrect(&rt);需要注意的是,cscrollview这个视图类,在有滚动条的情况下,通过上述代码获取的是可视窗口大小,而不是完整窗口尺寸,完整窗口尺寸需要通过gettotalsize函数获取:
csize logicsize = gettotalsize();// logical size
你用原生的api BOOL GetClientRect( HWND hWnd,LPRECT lpRect); 不用MFC的试试看呢?用 GetForegroundWindow 获取前端窗口句柄。
可以调用::GetSystemMetrics(SM_CXSCREEN),::GetSystemMetrics(SM_CYSCREEN),返回横纵分辨率,然后根据分辨率改变窗口大小
改变窗口大小可以使用MoveWindow函数
以上就是关于MFC如何改变窗口大小全部的内容,包括:MFC如何改变窗口大小、MFC编程中怎样设置单文档窗口大小固定、VC中如何获得活动窗口的大小信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)