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,不用理会。