error C2511: “void CEdit::operator =(CString)”:“CEdit”中没有找到重载的成员函数

我的目的很简单设置文本框中的文字,我想代码简单一些本来应该用SetWindowText函数,现在我将“=”重载,重载函数如下voidCEdit::operator=(CS... 我的目的很简单
设置文本框中的文字,我想代码简单一些
本来应该用SetWindowText函数,现在我将“=”重载,重载函数如下

void CEdit::operator =(CString txtstr)
{
SetWindowTextA(txtstr);
}

而且我在CEdit的定义中添加如下代码:
void operator =(CString);

我添加在了
class CEdit : public CWnd
{
// DECLARE_DYNAMIC virtual OK - CWnd already has DECLARE_DYNAMIC
DECLARE_DYNAMIC(CEdit)
// Constructors
public:
CEdit();
void operator =(CString); //这个部分
BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);

编译提示了
1>c:\users\administrator\documents\visual studio 2010\projects\test\test\testdlg.cpp(184): error C2511: “void CEdit::operator =(CString)”:“CEdit”中没有找到重载的成员函数
1> c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxwin.h(3911) : 参见“CEdit”的声明

我是VS2010,

求教育
展开
 我来答
99tools
2013-07-25 · TA获得超过265个赞
知道小有建树答主
回答量:445
采纳率:100%
帮助的人:190万
展开全部
class CMyEdit : public CEdit
{
public:
CMyEdit() {}
virtual ~CMyEdit(){}

public:
void operator =(const CString &sText)
{
SetWindowText(sText);
}
};
追问
我在OnInitDialog添加如下代码:

CString a="123";
ED1=a;

出现错误
error C2679: 二进制“=”: 没有找到接受“CString”类型的右操作数的运算符(或没有可接受的转换)
可能是“CEdit &CEdit::operator =(const CEdit &)”
尝试匹配参数列表“(CEdit, CString)”时
追答
声明控件变量时使用“CMyEdit ”代替“CEdit”。
chr1999
2013-07-22 · TA获得超过1056个赞
知道小有建树答主
回答量:2462
采纳率:0%
帮助的人:1239万
展开全部
继承后再加函数
追问
可以说一下详细的解决办法吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式