求高手!求高手!求高手!求高手!求高手!求高手!

Roy_Smiling 2011-03-02 04:47:06
1.#define HANDLE_WM_KEYDOWN(hwnd, wParam, lParam, fn) \
((fn)((hwnd), (UINT)(wParam), TRUE, (int)(short)LOWORD(lParam), (UINT)HIWORD(lParam)), 0L)

2.case WM_KEYDOWN: return HANDLE_WM_KEYDOWN ( hwnd, wparam, lparam, __glutOnKey);

问题:
a、头文件#define的东西和return后面的最后一个不匹配,也就是fn 和__glutOnKey不匹配。这是预处理么???

b、有高手说WM_KEYDOWN后就执行fn()函数,那么有可能fn就是__glutOnKey 么?谢谢!

哪位好心人+技术高手+好人中的好人知道下我吧,真的非常的感谢啊!
...全文
155 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
碎碎念 2011-03-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 roy_smiling 的回复:]

引用 8 楼 lanxue_1988 的回复:
fn是函数指针
函数参数列表(HWND,UINT, BOOL, int, UINT, LONG)

fn就是__glutOnKey
看看__glutOnKey函数的参数列表是不是和上面的一样吧。。。如果不一样就不匹配了

一样的,但是就是想不到为什么是,我就是根据几个这样的参数列表,猜出来的,但是为什么,这个是宏定义么?
[/Quote]

fn是宏定义参数....就是简单的将fn替换成__glutOnKey
w346581442 2011-03-02
  • 打赏
  • 举报
回复
这是windows程序设计我刚学,难着呢
pengzhixi 2011-03-02
  • 打赏
  • 举报
回复
额 你需要看些基础的书籍了。#define你都不清楚
Roy_Smiling 2011-03-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lanxue_1988 的回复:]
fn是函数指针
函数参数列表(HWND,UINT, BOOL, int, UINT, LONG)

fn就是__glutOnKey
看看__glutOnKey函数的参数列表是不是和上面的一样吧。。。如果不一样就不匹配了
[/Quote]
一样的,但是就是想不到为什么是,我就是根据几个这样的参数列表,猜出来的,但是为什么,这个是宏定义么?
碎碎念 2011-03-02
  • 打赏
  • 举报
回复
fn是函数指针
函数参数列表(HWND,UINT, BOOL, int, UINT, LONG)

fn就是__glutOnKey
看看__glutOnKey函数的参数列表是不是和上面的一样吧。。。如果不一样就不匹配了
rwjlqn 2011-03-02
  • 打赏
  • 举报
回复
帮顶 个人认为是:预编译
pengzhixi 2011-03-02
  • 打赏
  • 举报
回复
是预编译。
pengzhixi 2011-03-02
  • 打赏
  • 举报
回复
((__glutOnKey)((hwnd), (UINT)(wParam), TRUE, (int)(short)LOWORD(lParam), (UINT)HIWORD(lParam)), 0L)
Roy_Smiling 2011-03-02
  • 打赏
  • 举报
回复
HANDLE_WM_KEYDOWN ( hwnd, wparam, lparam, __glutOnKey);

谁能说一下,这个预编译被替代后是什么东西?????????以及为什么。
楼上三位好像都没回答第一个问题唉,这是预编译么???????
無_1024 2011-03-02
  • 打赏
  • 举报
回复
((fn)((hwnd), (UINT)(wParam), TRUE, (int)(short)LOWORD(lParam), (UINT)HIWORD(lParam)), 0L)
fn是一个指针函数 然后一些列的函数或者参数 用HANDLE_WM_KEYDOWN(hwnd, wParam, lParam, fn)来代替
pengzhixi 2011-03-02
  • 打赏
  • 举报
回复
就是__glutOnKey
a5796489 2011-03-02
  • 打赏
  • 举报
回复
fn这个参数是一个函数指针,要把函数名传过去,并且这个函数的参数格式必须为:
(hwnd,wParam,lParam),很明显这是个消息函数。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧