窗体创建 我在现有工程里添加了一个类,继承了CWnd,用CWnd的CreateEx创建一个窗体,窗体风格不能是CHILD,需要动态创建,需要怎么实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 C×××Class *pClass = new C***Class; pWnd->CreateEx(WS_EX_CLIENTEDGE,pClass ,"Hi", WS_TABSTOP | WS_VISIBLE, 5, 5, 30, 30, m_hWnd, (HMENU)1234);C***Class类的.h文件中要有DECLARE_DYNCREATE()和.cpp文件中有IMPLEMENT_DYNCREATE(); TO: shailen126 你pWnd是什么?怎么定义的?m_hWnd是this->m_hWnd么?第二个参数是类名,你塞个CWnd的子类指针是要干什么? 呵呵,不好意思,记的不太清楚了,试试这个吧CWnd::CreateEx(0, _T("MyClass"), "Hi", WS_TABSTOP | WS_VISIBLE, tipRect, NULL, 0); 好的,我再试试,这个是MSDN上的吧:) CWnd::CreateEx(0, _T("MyClass"), "Hi", WS_TABSTOP | WS_VISIBLE, tipRect, NULL, 0);这个应该可以的! 在父窗口的构造函数中注册窗口类: WNDCLASS wndcls; HINSTANCE hInst = AfxGetInstanceHandle(); if(!(::GetClassInfo(hInst, CST_CLASSNAME, &wndcls))) { wndcls.style = CS_SAVEBITS; wndcls.lpfnWndProc = ::DefWindowProc; wndcls.cbClsExtra = wndcls.cbWndExtra = 0; wndcls.hInstance = hInst; wndcls.hIcon = NULL; wndcls.hCursor = LoadCursor(hInst, IDC_ARROW); wndcls.hbrBackground = NULL; wndcls.lpszMenuName = NULL; wndcls.lpszClassName = CST_CLASSNAME; BOOL ix=AfxRegisterClass(&wndcls); if (!ix) AfxThrowResourceException(); } 在父窗口的初始化中:DWORD dwStyle = WS_POPUP; DWORD dwExStyle = WS_EX_TOOLWINDOW;CRect rt;pParentWnd->GetClientRect(&rt); //pParentWnd是它的父窗口,这里取得了父窗口区域的大小 实际上行就是填满这个父窗口BOOL ix=CreateEx( dwExStyle, CST_CLASSNAME, NULL, dwStyle, rt.left, rt.top, rt.Width(), rt.Height(), pParentWnd->GetSafeHwnd(), NULL, NULL); 用最大诚心求你耐心细细讲讲下面的dll是如何加载以及加载后做的事情 MFC 全局变量的问题,求助高手! 使用DirectShow操作usb摄像头,在Picture控件中预览摄像头中的数据 查找INI文本的内容(或者查找文本内容添加到LISTBOX) 用CreateEx创建的窗体,如何添加一个按钮?请教各位大侠 一个获取其他进程中列表控件内容的问题? NT服务如何访问共享文件夹 怎么捕获IE正在下载的所有文件? 什末是句柄呀? 这段程序在返回的时候为什么会有异常呢 在单文档模式下,如何改变菜单条的背景颜色,以及改变菜单的颜色 如何修改ctalctrl支持双击事件
pWnd->CreateEx(WS_EX_CLIENTEDGE,pClass ,"Hi", WS_TABSTOP | WS_VISIBLE,
5, 5, 30, 30, m_hWnd, (HMENU)1234);C***Class类的.h文件中要有DECLARE_DYNCREATE()和.cpp文件中有IMPLEMENT_DYNCREATE();
CWnd::CreateEx(0, _T("MyClass"), "Hi", WS_TABSTOP | WS_VISIBLE,
tipRect, NULL, 0);
tipRect, NULL, 0);这个应该可以的!
WNDCLASS wndcls;
HINSTANCE hInst = AfxGetInstanceHandle();
if(!(::GetClassInfo(hInst, CST_CLASSNAME, &wndcls)))
{ wndcls.style = CS_SAVEBITS;
wndcls.lpfnWndProc = ::DefWindowProc;
wndcls.cbClsExtra = wndcls.cbWndExtra = 0;
wndcls.hInstance = hInst;
wndcls.hIcon = NULL;
wndcls.hCursor = LoadCursor(hInst, IDC_ARROW);
wndcls.hbrBackground = NULL;
wndcls.lpszMenuName = NULL;
wndcls.lpszClassName = CST_CLASSNAME; BOOL ix=AfxRegisterClass(&wndcls);
if (!ix) AfxThrowResourceException();
}
在父窗口的初始化中:
DWORD dwStyle = WS_POPUP;
DWORD dwExStyle = WS_EX_TOOLWINDOW;CRect rt;
pParentWnd->GetClientRect(&rt); //pParentWnd是它的父窗口,这里取得了父窗口区域的大小 实际上行就是填满这个父窗口BOOL ix=CreateEx( dwExStyle, CST_CLASSNAME, NULL, dwStyle, rt.left, rt.top, rt.Width(), rt.Height(), pParentWnd->GetSafeHwnd(), NULL, NULL);