C++builder6.0使用 _property关键字来实现Get,Set方法
__property int x = { read=Getx, write=Setx };
int __fastcall Getx();
void __fastcall Setx(int value);
VC++6.0 如何实现呢,和c++builder一样,也有一个扩展功能_declspec()
定义一个宏,就可以和c++builder一样的方便了。
VC6.0中的定义
#define __property(t,v,r,w) __declspec(property(r,w)) t v
这个宏的用法,在这里这个备忘记录:
class TButton : public CButton
{
protected:
DECLARE_MESSAGE_MAP()
public:
TButton();
__property(AnsiString,Text,get=GetText,put=SetText) ;
AnsiString GetText()
{
CString strText;
CButton::GetWindowText(strText);
return strText ;
}
void SetText(const AnsiString& val)
{
CButton::SetWindowText(val);
}
};
实际用法,就很方便了:
TButton btn ;
btn.Text = "我是按钮";
AnsiString Txt = btn.Text ;