VC++6.0 中的属性的实现,使用__property宏定义Get,Set方法

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 ; 

 

你可能感兴趣的:(Visual,C++)