クラス内のメンバー関数を、メンバー関数クラス ポインターを受け取る関数に渡そうとしています。私が抱えている問題は、 this ポインターを使用してクラス内でこれを適切に行う方法がわからないことです。誰にも提案はありますか?
メンバー関数を渡すクラスのコピーを次に示します。
class testMenu : public MenuScreen{
public:
bool draw;
MenuButton<testMenu> x;
testMenu():MenuScreen("testMenu"){
x.SetButton(100,100,TEXT("buttonNormal.png"),TEXT("buttonHover.png"),TEXT("buttonPressed.png"),100,40,&this->test2);
draw = false;
}
void test2(){
draw = true;
}
};
関数 x.SetButton(...) は、「オブジェクト」がテンプレートである別のクラスに含まれています。
void SetButton(int xPos, int yPos, LPCWSTR normalFilePath, LPCWSTR hoverFilePath, LPCWSTR pressedFilePath, int Width, int Height, void (object::*ButtonFunc)()) {
BUTTON::SetButton(xPos, yPos, normalFilePath, hoverFilePath, pressedFilePath, Width, Height);
this->ButtonFunc = &ButtonFunc;
}
後で使用できるように、この関数を適切に送信する方法についてアドバイスがあれば。