Hola 'paisano':Puedes declarar la función dentro de la clase como estática, esto hará que para todas las instancias de la misma clase solo exista una vez el método, pero esta es la forma más simple de usar funciones de una clase como CALLBACK.
Por ejemplo, tenemos un proyecto nuevo vacio con todos los nombres por defecto:
en la parte privada de la clase del Form por ejemplo, declaramos:
...
private:
static void CALLBACK FuncionTimer(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime);
...
en el .cpp:
//-----
void CALLBACK TForm1::FuncionTimer(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
// Usamos 'idEvent' para recibir la referencia a la clase y hacemos un casting para poder usarlo como 'frm'
static int i =0;
TForm1* frm = reinterpret_cast<TForm1*>(idEvent);
if(frm)
frm->Caption = i++;
}
//-----
para activar el timer, por ejemplo en el constructor del Form:
UINT timerID;
timerID = SetTimer(Handle, (int)this, 60000,
reinterpret_cast<TIMERPROC>(FuncionTimer));
También podrías usar la clase TTimer quizás mas sencillo, aunque supongo que esto ya lo sabes o bien el mismo SetTimer sin especificar una función, esto hará que se dispare cada vez el evento WM_TIMER que podrías capturar.
Saludos.
_Leo