drcarter의 DevLog

보통 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