重庆企业官网建站快速搭建上海著名企业
在VC++生成的单文档应用程序中,主框架类和视类均具有PreCreateWindow函数;
从名字可知,可在此函数中添加一些代码,来控制窗口显示后的效果;
并且它有注释说明,
Modify the Window class or styles here by modifying the CREATESTRUCT cs
在这里通过修改CREATESTRUCT类型变量cs来修改窗口类或者窗口风格;
在Win32 API中窗口类是如下一个结构体;
typedef struct _WNDCLASSEX {
 UINT cbSize; //该结构的字节数
 UINT style; //窗口类的风格
 WNDPROC lpfnWndProc; //窗口过程
 int cbClsExtra;
 int cbWndExtra;
 HANDLE hInstance; //该窗口类的窗口过程所属的应用实例
 HICON hIcon; //该窗口类所用的像标
 HCURSOR hCursor; //该窗口类所用的光标
 HBRUSH hbrBackground; //该窗口类所用的背景刷
 LPCTSTR lpszMenuName; //该窗口类所用的菜单资源
 LPCTSTR lpszClassName; //该窗口类的名称
 HICON hIconSm; //该窗口类所用的小像标
 } WNDCLASSEX;
窗口风格是Windows预定义的以 WS_ 开头的一些常量;
WS_BORDER    窗口具有细线边框
 WS_CAPTION    窗口具有标题栏, (包含 WS_BORDER 样式) 
 WS_CHILD    窗口是子窗口;具有此样式的窗口不能有菜单栏;此样式不能与 WS_POPUP 样式一起使用;
 WS_CHILDWINDOW    与 WS_CHILD 样式相同;
等等;
在视类的PreCreateWindow函数中设置窗口样式多数不起作用;一般都在主框架类的PreCreateWindow函数中设置;
CREATESTRUCT结构体是MFC定义的;
typedef struct tagCREATESTRUCT
 {
   LPVOID  lpCreateParams;  //指向将被用于创建窗口的数据的指针。  
   HANDLE  hInstance;       //标识了拥有新窗口的模块的模块实例的句柄。  
   HMENU   hMenu;           //标识了要被用于新窗口的菜单。如果是子窗口,则包含整数ID。  
   HWND    hwndParent;      //标识了拥有新窗口的窗口。如果新窗口是一个顶层窗口,这个参数可以为NULL。  
   int     cy;              //指定了新窗口的高。  
   int     cx;              //指定了新窗口的宽。  
   int     y;               //指定了新窗口的左上角的y轴坐标。  
   int     x;               //指定了新窗口的左上角的x轴坐标。 
   LONG    style;           //指定了新窗口的风格。  
   LPCSTR  lpszName;        //指向一个以null结尾的字符串,指定了新窗口的名字。  
   LPCSTR  lpszClass;       //指向一个以null结尾的字符串,指定了新窗口的Windows类名
   DWORD   dwExStyle;       //指定了新窗口的扩展风格。  
 } CREATESTRUCT;
之前有一个MFC程序在窗口显示一些文字,下面看一下;
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{if( !CFrameWnd::PreCreateWindow(cs) )return FALSE;// TODO: Modify the Window class or styles here by modifying//  the CREATESTRUCT cscs.cx = 300; cs.cy = 300;cs.x=10;cs.y=10;//cs.style &= ~WS_BORDER;cs.style&=~FWS_ADDTOTITLE;cs.style |= WS_HSCROLL | WS_VSCROLL;//自定义标题cs.lpszName = "HelloWorld";return TRUE;
} 
指定了窗口的大小,窗口左上角坐标,具有滚动条,修改了MFC的默认窗口标题;

cs.lpszName = "HelloWorld" 这句要先有 cs.style&=~FWS_ADDTOTITLE 这句才起作用;
有时间继续;
