我想创建一个旋钮的类,然后供自己或别人调用。效果应该像ActiveX那样的,只不过ActiveX需要注册,这点不太好,所以我想自己创建一个类,然后在这个类中实现具体的绘图和其它消息响应。我开始做的时候就是新建一个MFC的Dialog然后在这个工程中通过"New Class"这个向导来创建一个新类CKnob,派生自CView类。但是在调用时出现了一个错误:
'CKnob::CKnob' : cannot access protected member declared in class 'CKnob'
看了看它自动生成的代码:
class CKnob : public CView
{
protected:
CKnob(); // protected constructor used by dynamic creation
DECLARE_DYNCREATE(CKnob)
...
}
想想也是。
但我在用别人提供的类的时候一般都是类似这样声明的:CKnob m_Knob;都没有问题。请问该如何解决呢?如果用CKnob *m_pKnob这样,然后再动态创建的话也行,但那样乱起八遭的代码一大堆,太麻烦,看起来也不爽。请问高手们如果遇到我上面的那种需求是如何解决的,谢谢!!
'CKnob::CKnob' : cannot access protected member declared in class 'CKnob'
看了看它自动生成的代码:
class CKnob : public CView
{
protected:
CKnob(); // protected constructor used by dynamic creation
DECLARE_DYNCREATE(CKnob)
...
}
想想也是。
但我在用别人提供的类的时候一般都是类似这样声明的:CKnob m_Knob;都没有问题。请问该如何解决呢?如果用CKnob *m_pKnob这样,然后再动态创建的话也行,但那样乱起八遭的代码一大堆,太麻烦,看起来也不爽。请问高手们如果遇到我上面的那种需求是如何解决的,谢谢!!
解决方案 »
- 繁简体内码转换
- 位图载入内存DC中,如何读DC中像素点的颜色?
- vc/opengl调用AVI视频,如何把背景处理透明
- CLISTCTR显示数据库表内容的问题求助
- 在网上搜索大多得到Unicode和ANSI的文章,而没有说明Unicode不同版本之间的区别,请问谁知道Unicode不同版本之间的区别?
- shell open出现的问题
- 怎样得到ax,bx,cx,dx中的值?
- 不同局域网内的两台机器如何通过TCP/IP进行通信(QQ是怎么做到的),如何做,请大家帮帮忙!
- *****急急急*****strCurrentPath.Replace('\','\\');为什么不可以“\”怎样转义 非常感谢
- 谁有Exange 2000操作手册之类的东东?还有下载ftp地址和密码,谢谢!收到马上给分!急用!
- 发送报文后,Cache-Control: private的问题
- 【请教】VC2005打开.CHM帮助文档的问题!!
那就定义一个静态成员函数来创建对象吧.
CKnob();
...即可
m_Knob.Create( NULL, "HI", WS_CHILD | WS_VISIBLE, CRect( 0, 0, 100, 100 ), this, 0 );运行程序时那个窗口出现了,但是在关闭对话框时出现了一个错误:_CrtIsValidHeapPointer(pUserData);
估计是新派生的类没有能够释放窗口的资源或其它原因:
默认:
CKnob::~CKnob()
{
}
请问高手们有没有知道该如何解决的?
谢谢!!