⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 event.h

📁 Vc.Net入门与提高源码
💻 H
字号:
// Event.h

#pragma once

#using <mscorlib.dll>
using namespace System;
public __delegate void MyDelegate(int x, double y);

public __gc class Event {
private:
public:
    __event MyDelegate* MyEvent;
    __event void MyEvent2(String*);

	//Use advanced syntax
	MyDelegate* _pd;
	__event void add_MyEvent3(MyDelegate* pd) {
		_pd = dynamic_cast<MyDelegate*> (Delegate::Combine(_pd, pd));
	}
	__event void remove_MyEvent3(MyDelegate* pd) {
		_pd = dynamic_cast<MyDelegate*> (Delegate::Remove(_pd, pd));
	}
	__event void raise_MyEvent3(int x, double y) {
		if (_pd) {
				_pd->Invoke(x, y);
		}
	}

	void Fire_MyEvent(int x, double y) {
			MyEvent(x, y);
	}
	void Fire_MyEvent2(String *s) {
			MyEvent2(s);
	}
public:
    void Handler(int x, double y) { 
        Console::Write("Event::Handler("); 
        Console::Write(x);
        Console::Write(",");
        Console::Write(y);
        Console::WriteLine(")"); 
    }
    void Handler2(String* s) { 
        Console::Write("Event::Handler2("); 
        Console::Write(s); 
        Console::WriteLine(")"); 
    }

    void Hook() { 
        MyEvent += new MyDelegate(this, &Event::Handler); 
        MyEvent2 += new __Delegate_MyEvent2(this, &Event::Handler2);
    }
    void UnHook() { 
        MyEvent -= new MyDelegate(this, &Event::Handler); 
        MyEvent2 -= new __Delegate_MyEvent2(this, &Event::Handler2);
    }
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -