最近、コールバック関数について知り、アプリに実装したいと考えています。ここに私がこれまでに得たものがあります。
// In my image.h
typedef void (__stdcall *DrawingMethod)(IplImage*, HDC, RECT*);
typedef struct _IMAGEPROCESSINGPARAMETER {
...
DrawingMethod draw;
}
IMAGEPROCESSINGPARAMETER,*PIMAGEPROCESSINGPARAMETER,*LPIMAGEPROCESSINGPARAMETER;
class Image {
public:
void DrawOriginalSize(IplImage*, HDC, RECT*);
void DrawToRect(IplImage*, HDC, RECT*);
void DrawIsotropic(IplImage*, HDC, RECT*);
int Show();
IMAGEPROCESSINGPARAMETER ipp;
...
};
// In my image.cpp
int Image::Show()
{
// Get IplImage, HDC, and RECT and finally call the function
...
DrawingMethod d = ipp.draw;
d(img, dc, &rc);
return 0;
}
// In main.cpp
#include "image.h"
static Image img;
...
case IDC_FILE_OPEN: {
img.ipp.draw = img.DrawOriginalSize; // This is ERROR
img.Show();
break;
}
このコードを機能させるにはどうすればよいですか、またはこのようなコードを書くのは間違っていますか?
少し早いですがお礼を