一种函数指针的运用
程序员文章站
2022-06-10 12:42:27
...
定义一个结构体,称之为消息
//定义一种结构体,即消息
struct MSGMAP_ENTRY
{
UINT nMessage;
LONG(*pfn)(HWND, UINT, WPARAM, LPARAM);
};
定义函数指针数组
//消息与处理例程的对照表
struct MSGMAP_ENTRY _messageEntries[] =
{
WM_CREATE, OnCreate,
WM_PAINT,OnPaint,
WM_SIZE,OnSize,
WM_COMMAND,OnCommand,
WM_SETFOCUS,OnSetFocus,
};
调用
#define dim(x) (sizeof(x)/sizeof(x[0])) //计算数组的大小
//处理函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int i;
for (size_t i = 0; i < dim(_messageEntries); i++)
{
if (message == _messageEntries[i].nMessage)
{
(*_messageEntries[i].pfn)(hWnd, message, wParam, lParam);
}
}
}
推荐阅读
-
linux kernel 打印函数指针对应的函数名方法
-
函数的返回类型是引用类型与函数的返回类型是指针类型
-
c++ 拷贝构造函数(重点在内含指针的浅拷贝和深拷贝)
-
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
-
返回指针的函数
-
C语言中va(可变函数参数) 的另一种用法与危险事项
-
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
-
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
-
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
-
MySQL各类函数的运用必知必会