急MFC单文档程序有关窗口大小的有关问题
急!MFC单文档程序有关窗口大小的问题!
我建立了一个MFC 单文档工程(使用Ribbon)。
我希望能够将主窗口的大小固定,禁止用户更改,上网找了资料,于是在MainFrm.cpp里做了如下设置:
得到的结果有2个问题:
1:代码中的其他语句都有体现出效果,但是通过cs.cx, cs.cy修改窗口默认大小的这2句没作用,程序执行后出来的主窗口的大小没有被改变,而是持续保持上一次关闭时的状态(包括大小和位置),请问这种状况该怎么办。
2:虽然鼠标移动到窗口边缘无法改变窗口大小了,但是当鼠标移动到窗口上边缘时,依然可以调整窗口的高度,求将这个也禁用的方法。
问题2示意图:

------解决思路----------------------
第二个问题,让MFC对话框不响应标题栏双击,只要找到响应的事件入口,就可以做自己所需的功能。
重载OnNcLButtonDblClk,添加如下代码:
if(nHitTest == HTCAPTION) // 为标题栏的双击
return;
------解决思路----------------------

你不能再把操作传递给基类,你要自己使用MoveWindow设置尺寸
我建立了一个MFC 单文档工程(使用Ribbon)。
我希望能够将主窗口的大小固定,禁止用户更改,上网找了资料,于是在MainFrm.cpp里做了如下设置:
#define RESOLUTION_WIDTH 1024
#define RESOLUTION_HEIGHT 768
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWndEx::PreCreateWindow(cs) )
return FALSE;
cs.cx = RESOLUTION_WIDTH;
cs.cy = RESOLUTION_HEIGHT;
cs.style &= ~WS_THICKFRAME; // 不支持调整窗口大小
cs.style &= ~WS_MAXIMIZEBOX;
cs.style &= ~FWS_ADDTOTITLE;
cs.lpszName = L"设备检测";
return TRUE;
}
得到的结果有2个问题:
1:代码中的其他语句都有体现出效果,但是通过cs.cx, cs.cy修改窗口默认大小的这2句没作用,程序执行后出来的主窗口的大小没有被改变,而是持续保持上一次关闭时的状态(包括大小和位置),请问这种状况该怎么办。
2:虽然鼠标移动到窗口边缘无法改变窗口大小了,但是当鼠标移动到窗口上边缘时,依然可以调整窗口的高度,求将这个也禁用的方法。
问题2示意图:
------解决思路----------------------
第二个问题,让MFC对话框不响应标题栏双击,只要找到响应的事件入口,就可以做自己所需的功能。
重载OnNcLButtonDblClk,添加如下代码:
if(nHitTest == HTCAPTION) // 为标题栏的双击
return;
------解决思路----------------------
你不能再把操作传递给基类,你要自己使用MoveWindow设置尺寸
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CRect r;
GetWindowRect(&r);
int mWidth=800;
int mHeight=500;
r.right=r.left+mWidth;
r.bottom=r.top+mHeight;
MoveWindow(&r,false);
CMDIFrameWndEx::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
}