Create

BOOL Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
//解释函数
BOOL Create(LPCTSTR lpszClassName,   你的窗口类名,写你注册窗口类的时候的类名
LPCTSTR lpszWindowName,       你的窗口名字,随便写
DWORD dwStyle,            窗口风格,详细定义在window.h中
const RECT& rect,      窗口长宽 是个RECT结构
CWnd* pParentWnd,     父窗口句柄,没有就NULL 
UINT nID,        窗口id,记0
CCreateContext* pContext = NULL 保留
)

第一个参数lpszClassName是一个窗体类名字符串的指针(一个WNDCLASS②结构体)。
此类名可以是任意的由全局函数AfxRegisterWndClass注册过的预定义控件类名。
如果为空,则使用CWnd类的默认属性。
第二个参数lpszWindowName是作为窗体标题的字符串指针。
第三个参数dwStyle是宏定义的窗体类型,具体定义如下:

WS_BORDER 创建一个有边框的窗体。

WS_CAPTION 创建一个有标题栏的窗体(隐含了WS_BORDER). 不能和WS_DLGFRAME
   一起使用.

WS_CHILD 创建一个子窗体。不能和WS_POPUP一起使用。

WS_CLIPCHILDREN 不包括在父窗体中被子窗体占用的区域。用于创建父窗体。

WS_CLIPSIBLINGS 使子窗体彼此别住;就是当一个指定的子窗体接收到一个
   paint消息时,WS_CLIPSIBLINGS类型将别住所有重叠的子窗
   体超过区域的部分一起更新,(如果没有使用WS_CLIPSIBLINGS
   并且子窗体重叠,当你在一个子窗体的客户区绘图时,可能
   会绘图到邻近的子窗体的客户区。)只与WS_CHILD一起使用。

WS_DISABLED 创建一个初始不可用的窗体。

WS_DLGFRAME 创建一个有双边但无标题的窗体。

WS_GROUP 指定一个用户可以用方向键从一个控件移到另一个控件的控
   件组的第一个控件。All controls defined with the WS_GROUP
   style FALSE after the first control belong to the same
   group. The next control with the WS_GROUP style starts
   the next group (that is, one group ends where the next
   begins).

WS_HSCROLL 创建一个带水平滚动条的窗体。

WS_MAXIMIZE 创建一个最大尺寸的窗体。

WS_MAXIMIZEBOX 创建一个有最大化按扭的窗体。

WS_MINIMIZE 创建一个初始最小化的窗体。只与WS_OVERLAPPED一起使用。

WS_MINIMIZEBOX 创建一个有最小化按扭的窗体。

WS_OVERLAPPED 创建一个重叠窗体。一个重叠窗体一般有标题和边框。

WS_OVERLAPPEDWINDOW 创建一个和WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU,
   WS_THICKFRAME, WS_MINIMIZEBOX, and WS_MAXIMIZEBOX一
   使用的重叠窗体。

WS_POPUP 创建一个弹出式窗体。不能和WS_CHILD一起使用。

WS_POPUPWINDOW 创建一个和WS_BORDER, WS_POPUP, and WS_SYSMENU一起使
   用的弹出式窗体。WS_CAPTION必须和WS_POPUPWINDOW组合使
   用才能让控件菜单可见。

WS_SYSMENU 创建一个在标题栏有控件菜单框的窗体。只能和有标题栏的
   窗体一起使用。

WS_TABSTOP 指定任意数量控件中的一个可以由用户使用TAB键移动到的
   控件。TAB键使用户移动到由WS_TABSTOP指定的下一个控件。

WS_THICKFRAME 创建一个有厚边框的Window,使其可以改变大小。

WS_VISIBLE 创建一个初始可见的窗体。

WS_VSCROLL 创建一个有垂直滚动条的窗体。

由于上表中常量可以进行组合,用按位或运算,所以常量名的值被定义为类似于
0x00C00000L的32位16进制数型式。例如进行WS_SYSMENU|WS_MINIMIZEBOX运算时即
0x00080000L|0x00020000L。数字前面的0x是16位数的标识符,L表示32位,上式的演
算式可表示如下:

=
00000000000010000000000000000000
    (|) 00000000000000100000000000000000
------------------------------------------
        00000000000010100000000000000000 = 0X000A0000L = 655360;

当你用十进制数655360替代WS_SYSMENU|WS_MINIMIZEBOX作为实参时,你会看到相
同的结果。

第四个参数rect是一个RECT结构体的对象,用于指定窗体的尺寸和位置。RECT结
构体的定义如下:

typedef struct tagRECT
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;

我们可以利用从tagRECT结构体派生出的CRect类的构造函数来初始化一个RECT结构
体。CRect的一个重载构造函数定义如下:

// from left, top, right, and bottom
CRect(int l, int t, int r, int b);

第五个参数pParentWnd用于指定父窗体,这是一个指向CWnd类对象的指针。
第六个参数nID用于指定作为子窗体的窗体ID。
最后一个参数是关于创建内容的指针,已被默认为NULL,不用理会。

 

posted @ 2018-03-15 14:02  小雨滴答  阅读(471)  评论(0编辑  收藏  举报