3

我正在尝试MsgProc在 Win32 中创建类似的东西。当他们声明MsgProc函数时,他们有CALLBACK它之前的类型。所以,我所要做的就是创建自己的消息函数,调用我的函数来处理消息。发送和处理消息时基本相同。我的问题是如何创建相同的流程?一个例子会很棒。

4

3 回答 3

1

除了经典的函数指针和函数对象之外,您可能对新的 C++0x lambda 感兴趣。

这是将 lambda 传递给计时器函数的示例。

#include <windows.h>
#include <iostream>
#include <functional>

void onInterval(DWORD interval, std::function<void ()> callback) {
  for (;;) {
    Sleep(interval);
    callback();
  }
}

int main() {
  onInterval(1000, []() {std::cout<<"Tick! ";});
}
于 2010-11-27T08:38:49.477 回答
0

如果您可以使用 Boost,我肯定会给Boost.Signals一个机会,它们以干净和安全的方式提供您正在寻找的功能(Boost.Signals2甚至以线程安全的方式。)

于 2010-11-27T08:07:49.897 回答
0

如果您使用 C++,只需在您的类中使用函数指针:

http://www.newty.de/fpt/fpt.html

于 2010-11-27T07:51:37.570 回答