刚才又有人在我QQ里问到如何禁止用户该表自己单文档窗体的大小,修改标题等等问题,其实这些问题不难,那么我现在来讲一下这个东西的实现。
首先找到单文档程序中的PreCreateWindow(CREATESTRUCT& cs)这个函数,这个函数是用来设置我们窗体的一些特征的,现在,我们来仔细看一下这个函数,如下:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return TRUE;
}
首先来看这个参数CREATESTRUCT& cs,是一个CREATESTRUCT结构的引用,那好,我们再来查询下MSDN,看一下这个结构,如下:
typedef struct tagCREATESTRUCT { // cs
LPVOID lpCreateParams;
HINSTANCE hInstance;
HMENU hMenu;
HWND hwndParent;
int cy;
int cx;
int y;
int x;
LONG style;
LPCTSTR lpszName;
LPCTSTR lpszClass;
DWORD dwExStyle;
} CREATESTRUCT;
我们来一个一个的看这些参数:
LPVOID lpCreateParams:这个参数用来指向将被用于创建窗口的数据的指针。
HINSTANCE hInstance: 这个参数标识了拥有新窗口的模块的模块实例的句柄。
HMENU hMenu:这个参数标识了要被用于新窗口的菜单。如果是子窗口,则包含整数ID。
HWND hwndParent:这个参数标识了拥有新窗口的窗口。如果新窗口是一个顶层窗口,这个参数可以为NULL。
int cy:这个参数指定了新窗口的高。
int cx:这个参数指定了新窗口的宽。
int y:这个参数这个参数指定了新窗口的左上角的Y轴坐标。如果新窗口是一个子窗口,则坐标是相对于父窗口的;否则坐标是相对于屏幕原点的。
int x:这个参数定了新窗口的左上角的X轴坐标。如果新窗口是一个子窗口,则坐标是相对于父窗口的;否则坐标是相对于屏幕原点的。
LONG style:这个参数指定了新窗口的风格。
LPCTSTR lpszName:这个参数指向一个以null结尾的字符串,指定了新窗口的名字。
LPCTSTR lpszClass:这个参数指向一个以null结尾的字符串,指定了新窗口的Windows类名(一个WNDCLASS结构;更多的信息参见Win32 SDK文档)。
DWORD dwExStyle:这个参数指定了新窗口的扩展风格。
在这些参数里面我们一般经常用到的是cy、cx、y、x、style、lpszName这几个,需要特别注意。
好了,现在开始在PreCreateWindow(CREATESTRUCT& cs)
加上代码,实现禁止改变单文档窗口大小:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.hMenu = NULL;//去掉菜单
cs.style&=~WS_MAXIMIZEBOX; //禁用按动最大化按钮
cs.style&=~WS_THICKFRAME;//禁止用户改变窗口大小
cs.cx = 700;//窗口宽度
cs.cy = 500;//窗口高度
cs.style&=~FWS_ADDTOTITLE;//将FWS_ADDTOTITLE去掉
cs. lpszName = "标题"//改变标题,替换自己的标题
return TRUE;
}
这里我们要注意,给这些参数赋值的时候我们需要用&符号还有一个~符号,我来解释一个:
cs.style&=~WS_MAXIMIZEBOX; //禁用按动最大化按钮
这句的意思是将WS_MAXIMIZEBOX从style里去掉,是个反与的操作,其他的类同。
分享到:
相关推荐
实现功能:将单文档的MFC项目窗口,划分分左右两个部分,左侧为可视化控件窗口,右侧为绘图窗口 运行环境:Windows10 64位,VC++6.0,MFC架构 使用方法:将其中的Test02文件夹整个解压到某一目录下,双击打开其中的...
vc++6.0你不知道的功能 单文档和多文档程序框架窗口 项目的文件组织 更改应用程序菜单
vc++6.0。数据编程的开始。计算机等级考试必备。简体中文版 vc++是Windows平台上的C++编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。Windows下编程需要了解Windows的...
VC++是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c++的一个开发...MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等。
单文档视图分割,分成一行两行,可以设置分割线的粗细
本资料主要是讲解在VC++6.0如何拆分窗口,包括PDF文档的详细讲解步骤。欢迎下载参考
建一个单文档窗口,将视口切分成两个,一个放滑动条,另一个画图(随便画,矩形什么的都行),用窗口中的滑动条控制另一个窗口图形的大小和颜色。
该文档是我毕设作品的前半部分,里面包括了VC++ 6.0的窗口拆分和OpenGL的基本绘图,里面有详细的文档一步步的教你怎么做,并且将每个函数的功能写的很清楚,还有源代码供应,只要选择输入数据将模型文件夹里的文件...
针对多文档的程序,截获客户区窗口的消息,在客户区窗口显示图片
如果想在一个窗口里面观察文档的不同部分,或者是在一个窗口里用不同类型的视图(比如用图表和表格)观察同一个文档,那么采用分割窗口是非常方便的。许多优秀的软件都采用了分割窗口技术,因此我们有必要掌握分割...
新手入门最好的动手试验文档,通过试验快速了解开发环境。了解控件,窗口,对话框等等,windows下编程的入门级知识。从易到难,试验都做完后就可以很快上手vc的编程了。
电脑上如果装有VC++6.0编程软件和office2007(2010)办公软件,那么经常编程的人就会遇到下面的问题:VC打不开文件和工程,总是提示读取内存错误,点“确定”后vc自动关闭,但vc却能新建文件和工程;这让许多人困惑。...
|------ 3.1 文档 视图 框架窗口间的关系和消息传送规律 |------ 3.2 接收用户输入 |------ 3.3 使用菜单 |------ 3.4 文档,视,框架之间相互作用 |------ 3.5 利用序列化进行文件读写 |------ 3.6 MFC中所提供的...
本例子采用的是在MFC下以静态的方式将窗口分割为3个部分。且在单文档的模式下
Visual C++6.0使用GDI+的一般方法 1. 载解压GDI+开发包; 2. 正确设置include & lib 目录; 3. stdafx.h 添加: #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #endif #include 4. 程序中添加GDI+的...
VC++6.0多线程技术在端口扫描程序中的应用 VC++6.0多线程技术在端口扫描程序中的应用 让程序防病毒 用VC++5.06.0实现“更改图标”对话框 统一网内微机系统时钟的一种方案 用InstallShield制作商品化软件...
内容为:Visual C++6.0开发环境、基本C++语言、C++的面向对象程序设计、MFC基本应用程序的建立、对话框及常用控件、选单、工具栏和状态栏、框架窗口、文档和视图、绘图、数据库及媒体控制接口等。“实用教程”部分是...
本人从网上收集的资料。帮助VC爱好者学习在VC6.0环境中通过使用CSplitterWnd类实现窗口的任意拆分。
利用VC++6.0创建一个单文档SDI应用程序,在框架客户区实现切分窗口的功能,切分窗口的比例为5:4