当前位置:编程学习 > VC++ >>

关于MFC的菜鸟提问!

我想固定窗口的大小,就是给定一个初始的大小,不允许改变,没有最大化和最小化功能,我在CMainFrame::PreCreateWindow里面添加了SetWindowPos( &wndTop , 100, 100, 200, 200, SWP_FRAMECHANGED );编译没有问题,但是还是报错了,我用的是MFC的单文档程序,求大神指点要怎么弄?
追问:嗯嗯,搞定了!谢谢!能加你QQ吗?学习这个的时候还有些问题要向你请教!
答案:PreCreateWindow 这时窗口尚未创建,大部分的窗口操作函数都不可使用。
在PreCreateWindow函数中,直接修改CREATESTRUCT 参数cs 就可以了
其中,cx, cy 成员用于确定窗口大小,x, y 成员确定窗口位置,style 成员可以其他几个要求
例如不允许改变大小,取消 WS_THICKFRAME 风格
没有最大化和最小化按钮,取消 WS_MINIMIZEBOX  和 WS_MAXIMIZEBOX
cs.x = 100;
cs.y = 100;
cs.cx = 200;
cs.cy = 200;
cs.style &= ~(WS_THICKFRAME | WS_MINIMIZEBOX  | WS_MAXIMIZEBOX);
其他:响应CMainFrame的WM_GETMINMAXINFO消息
示例代码如下:
 

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) 
{
 lpMMI->ptMinTrackSize.x = 800;  //窗口的固定宽度,像素值
 lpMMI->ptMaxTrackSize.x = 800;  //窗口的固定宽度,像素值
 lpMMI->ptMinTrackSize.y = 600;  //窗口的固定高度,像素值
 lpMMI->ptMaxTrackSize.y = 600;  //窗口的固定高度,像素值
 
 CFrameWnd::OnGetMinMaxInfo(lpMMI);
} 

上一个:如何将当前应用程序的窗口视图保存为图片(VC、MFC、VS2008)
下一个:VC++6.0 里MFC AppWizard(exe) 控件怎么添加?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,