보통 class 안에서 선언된 callback함수는 접근이 안된다.
class T
{
public:
void CALLBACK test();
}
보통 이렇게 되어 있다고 하면 접근을 하기 위해서 static을 붙여주기도 한다.
class T
{
public:
static void CALLBACK test();
}
하지만... callback함수 안에서 다시 class 안에 있는 멈버 변수에 접근을 하지 못하게 된다.
내가 해결한 방법으로는
class 안에서 class 변수를 static으로 선언을 해주어서는 this 포인터로 접근하였다.
class T
{
private:
static T* m_pInstance;
public:
void CALLBACK test();
}
생성자에서는
T::T(void)
{
m_pInstance = this;
}
그리고 마지막으로 전역변수로
T* T::m_pInstance = NULL;
이렇게 하면 callback함수 안에서 class 암에 있는 멤버 변수에 접근이 가능하게 된다.
void CALLBACK T::test()
{
m_pInstance->변수이름;
m_pInstance->함수;
}
'C / C++ > WIN32 / MFC' 카테고리의 다른 글
Screen Capture / C++ (0) | 2007.09.17 |
---|---|
간단하게 만들어 보는 이미지 뷰어(ImageViewer) (2) | 2007.07.16 |