MFC中更改窗口样式

        使用MFC生成多文档应用程序时,会自动生成CMainFrame类和CChildFrame类,要修改窗口的样式,可以在CChildFrame的PreCreateWindow方法中进行修改,如下:

BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
 // TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或样式
 if( !CMDIChildWndEx::PreCreateWindow(cs) )
  return FALSE;
 cs.style = WS_CHILD | WS_VISIBLE | WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU
  | FWS_ADDTOTITLE | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_MAXIMIZE;

 return TRUE;
}

        是通过指定CREATESTRUCT结构体中的style属性来修改的。

        msdn中CREATESTRUCT结构体的定义如下:

 

        CREATESTRUCT结构体定义了传递给应用程序窗口过程的一些初始化参数,这些参数与 CreateWindowEx 函数的参数是一样的。

typedef struct tagCREATESTRUCT
 { 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, *LPCREATESTRUCT;

参数说明:

    lpCreateParams

    包含可能用于创建窗口的一些额外的数据。如果这个窗口是通过CreateWindow函数或者CreateWindowEx函数调用创建的,这个参数包含特定函数调用中的 lpParam 属性值。

    如果正在创建的这个窗口是一个多文档(MDI,mulitple-document interface)客户窗口,这个参数包含一个指向 CLIENTCREATESTRUCT结构体的指针。如果正在创建的这个窗口是一个多文档子窗口,这个参数包含一个指向MDICREATESTRUCT结构体的指针。

     hInstance      拥有这个新窗的实例句柄。      hMenu      新窗口的菜单句柄。      hwndParent      如果这个窗口是一个子窗口,则这个参数表示父窗口的句柄。如果这个窗口是被拥有的,则这个参数表示拥有者的句柄。如果这个窗口既不是一个子窗口也不是被拥有的窗口,则这个参数为NULL。      cy       指定新窗口的高度,单位是像素。      cx       指定新窗口的宽度,单位是像素。      y      指定新窗口的左上角的y坐标。如果这个新窗口是子窗口,坐标值是相对于父窗口的。否则,这个坐标值相对于屏幕的原点。      x      指定新窗口的左上角的x坐标。如果这个新窗口是子窗口,坐标值是相对于父窗口的。否则,这个坐标值相对于屏幕的原点。

     style

     指定新窗口的样式,这些窗口样式是微软已经定义好了的。window中的窗口样式这里列举了msdn中所有的窗体样式。

     lpszName

     指向一个表示新窗口名称的非结束符的字符串

     lpszClass

     一个非结束符的字符串或者表示新窗口类名的字符串

     dwExStyle

     指定新窗口的一些扩展样式

备注:

如果要获得窗口的类的名字,不要使用lpszClass,使用GetClassName这个函数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值