VC++创建popup窗体

在MFC里面创建普通的不是popup子窗体,用Create即可代码如下:

      CWnd *wnd=new CWnd();
	wnd->Create(NULL,NULL,WS_OVERLAPPEDWINDOW,CRect(0,0,100,100),NULL,NULL);
	wnd->ShowWindow(SW_SHOW);

这样创建出来的窗体不带popup风格,它只能作为另一个窗体的子窗体的,并且Create只能创建

WS_CHILD风格的窗体,因为在Create内部进行了限制,Create内部代码如下:

         ASSERT(pParentWnd != NULL);
	ASSERT((dwStyle & WS_POPUP) == 0);

	return CreateEx(0, lpszClassName, lpszWindowName,
		dwStyle | WS_CHILD,
		rect.left, rect.top,
		rect.right - rect.left, rect.bottom - rect.top,
		pParentWnd->GetSafeHwnd(), (HMENU)(UINT_PTR)nID, (LPVOID)pContext);

从上面的代码可以看出Create不能创建WS_POPUP风格的窗体,并且必须有父窗体,而且创建的窗体

只能是WS_CHILD风格的窗体。


要创建WS_POPUP风格的窗体必须用CreateEx才行,代码如下:

      CWnd *wnd=new CWnd();
	wnd->CreateEx(NULL,AfxRegisterWndClass(CS_DBLCLKS,::LoadCursor(NULL, 
                      IDC_ARROW),(HBRUSH) ::GetStockObject
                      (WHITE_BRUSH)),NULL,WS_POPUP|WS_OVERLAPPEDWINDOW,0,0,300,400,NULL,NULL);
	wnd->ShowWindow(SW_SHOW);


这样创建出来的窗体,父窗体那个参数可以为空,并且相对主窗体是独立的,可以在桌面随意移动


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值