[visualstudio][cpp][UE5]UE5 Logic Nightで話題になったイベントディスパッチャーとデリゲートに関する調べものvol.01キーボードまたはUIボタンイベント時

UE5のEventDispatcher はこれだけ レベルブループリントのでキーボードイベント受けられるので これだけ

C++のデリゲートはこれだけ! 

#include "pch.h"
#include "MainPage.xaml.h"

using namespace UseDelegate;

using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;

MainPage::MainPage()
{
    InitializeComponent();
}

// デリゲートの宣言
delegate void SampleDelegate(); // ---------デリゲートの宣言

ref class ClsA
{
public:
    void Disp()
    {
        Windows::UI::Popups::MessageDialog^ md =
            ref new Windows::UI::Popups::MessageDialog(
                L"ClsAのDisp()メソッドを実行しました\n");
        md->ShowAsync();
    }
};
void UseDelegate::MainPage::Button1_Click(
    Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
    ClsA^ obj = ref new ClsA(); // ----(イベント)ハンドラ
    //メソッドをバインド
    SampleDelegate^ sd = ref new SampleDelegate(obj, &ClsA::Disp); 
    sd(); // ---------------------------コールと同義
}

個人的結論:どちらも指定したタイミングで実行したいイベントを登録しておくもの!

関連URL

ポジTAさんありがとうございます。

https://zenn.dev/posita33/books/ue5_starter_cpp_and_bp_001/viewer/chap_02_bp-event_dispatcher

C++参考 Visual C++2022パーフェクトマスターより

UE5 Logic Night

https://t.co/AovVDgpXMT