如何正确调用Create或者CreateEx函数生成CWnd类派生类的具有WS_POPUP属性的窗口

来源:百度知道 编辑:UC知道 时间:2024/06/15 18:56:34
如何正确调用Create或者CreateEx函数生成CWnd类派生类的具有WS_POPUP属性的窗口

或者说 如何自己编写类似CDialog的CWnd的派生类 但是不需要对话框资源就可以生成窗口对象???

万分感谢!!
谢谢回答

但是请问如何从CWnd类派生新类然后生成具有WS_POPUP属性的窗口呢?我用了CreateEx总是不成功的,我想实现类似CDialog的DoModal功能

魔高丈 给出的例子使用的是windows api函数 CreateWindowEx 我应该怎么应用到派生类中呢?

你参考一下这里的代码吧:
http://www.vckbase.com/document/viewdoc/?id=269

里面的颜色选择对话框就是用CreateEx动态创建的,且没有用到资源!

new 一个CWnd,再Create不就成功了么
Create的参数很简单啊,你注意不同的控件,有不同的字符串标示,比如:_T("EDIT") _T("LISTBOX")等,剩下的参数是窗口位置、样式、父窗口、ID,这些都好赋值。

你看 VS自带的 winctrl1.cpp/winctrl2.cpp/...等几个文件,里面有常用控件的实现方法。
eg。你想生成一个listbox
CListBox* list1 = new CListBox;
list1->Create(WS_CHILD,rect, this, nID);
如果直接不包含CListBox的头文件,就:
CWnd*mylistbox1 = new CWnd;
mylistbox1->Create(_T("LISTBOX"), _T("列表控件"),...);

试试