C++ 类中封装Win32API的回调函数

一定要把方法声明成为静态方法,这样才能取到函数的地址。

例如:

这样什么回调函数:

static  INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

 

在用的时候需要取地址:

this -> hWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), NULL,  & FormatDlg::About);

 

 

我所理解的需要静态方法的原因:只有静态方法才能在编译时候取到固定的函数地址,如果是动态的是在运行时产生地址不固定,所以一定要用静态方法。

你可能感兴趣的:(C++ 类中封装Win32API的回调函数)