Я хочу вызвать функцию класса как обратный вызов для моего таймера, но это исправление. Следующий путь, который я пытаюсь сделать, - скопировать указатель на другой файл cpp внутри проекта, чтобы кто-то сказал мне, что в этом плохого.Функция класса вызова C++ как обратный вызов
Заголовок Включить программу File:
class Progc:
public IStorage
{
public:
Processor(HWND Hwnd);
static void CALLBACK ClickCall(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime);
};
Timecatch.cpp файл программы
void CALLBACK Progc::ClickCall(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime)
{
RECT rcOwner;
GetWindowRect(hwnd, &rcOwner);
SetCursorPos((rcOwner.top), (rcOwner.left));
this->Action();
KillTimer(hwnd, 0);
}
Я получаю ошибку выше
error C2671: 'Progc::ClickCall' : static member functions do not have 'this' pointers
error C2227: left of '->Action' must point to class/struct/union/generic type
Продолжение Timecatch.cpp файл программы
void Progc::Action()
{
SetTimer(hWndParent, 0, 6000,(TIMERPROC) &this->ClickCall);
}
Следующая другое имя файла файл программы Program.cpp
Progc *ProgBr1;
ProgBr1 = new Processor(hWnd);
Что я хочу сделать, это просто, я хочу, чтобы сделать вызов функции Action()
из ClickCall(....)
функции после вызова таймера, что функции, либо другим способом, или с помощью указателя ProgBr1, как я использую ProgBr1 для вызова Action из Program.cpp.
ProgBr1->Action();
Но я не могу инициализировать другую переменную и получить указатель с
ProgBr1 = new Processor(hWnd);
Так есть ли способ, чтобы сделать еще данные указателя и скопировать значение ProgBr1 к нему и использовать его в Timecatch.cpp файл?
Действительно смущен и новый для C++. Будет опубликован здесь, если я получу обновление.
Есть ли какой-либо другой способ, я могу использовать этот указатель? – user3694193