如题
解决方案 »
- 多文档中文档与视图的对应
- report型ListCtrl如何让第一列不可编辑?
- debugging是免费软件么?
- C++中获得两个数据的百分比的函数是什么???
- 如何读取字典库
- 开了一个 VC++ 的讨论群,大家快加入呀!
- 如何将CString 转成 int 啊。
- 哪个程序能够查看本机的ip地址
- 如何在 MFC ActiveX 里使用定时器?急!!!
- 在build exe事发生如下错误:LIBC.lib(crt0.obj) : error LNK2001: unresolved external symbol _main,该如何解决???
- [求助]VC下定期清空SQL表内数据
- 问个button的实现问题?
Rect参数就是消息里的(RECT*)lParam。 void CMainFrame::OnSizing(UINT fwSide, LPRECT pRect)
{
CFrameWnd::OnSizing(fwSide, pRect); //限制窗口只能改变右边的尺寸
RECT rect;
GetWindowRect(&rect);
pRect->left=rect.left;
pRect->bottom=rect.bottom;
pRect->top=rect.top;
} void CMainFrame::OnMoving(UINT fwSide, LPRECT pRect)
{
CFrameWnd::OnMoving(fwSide, pRect); //限制窗口只能上下移动
RECT rect;
GetWindowRect(&rect);
pRect->left=rect.left;
pRect->right=rect.right;
}
继承类中处理消息WM_GETMINMAXINFO,结构MINMAXINFO设置了整个窗口
类的限制,因此记住要考虑工具条,卷动条等等的大小.// 最大最小尺寸的象素点 - 示例
#define MINX 200
#define MINY 300
#define MAXX 300
#define MAXY 400
void CMyFrameWnd::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
CRect rectWindow;
GetWindowRect(&rectWindow);
CRect rectClient;
GetClientRect(&rectClient);
// get offset of toolbars, scrollbars, etc.
int nWidthOffset = rectWindow.Width() - rectClient.Width();
int nHeightOffset = rectWindow.Height() - rectClient.Height();
lpMMI->ptMinTrackSize.x = MINX + nWidthOffset;
lpMMI->ptMinTrackSize.y = MINY + nHeightOffset;
lpMMI->ptMaxTrackSize.x = MAXX + nWidthOffset;
lpMMI->ptMaxTrackSize.y = MAXY + nHeightOffset;
} 第二步,在CFrameWnd的派生类的PreCreateWindow函数中去掉WS_MAXIMIZEBOX消息,
否则在最大化时你将得不到预料的结果.BOOL CMyFrameWnd::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~WS_MAXIMIZEBOX;
return CFrameWnd::PreCreateWindow(cs);
}