当前位置 :
回调函数是什么谢谢HRESULTCALLBACKHelloworldProcess(HWNDhWnd,UINTMessage,WPARAMWParam,LPARAMLParam){switch(Message){caseWM_PAINT:{HDCdc=BeginPaint(hWnd);SetColor(dc,CL_RED);TextOut(dc,50,50,"HelloWorld!");EndPaint(hWnd
更新时间: 2025-08-30 05:17:32
1人问答
问题描述:

回调函数是什么谢谢

HRESULTCALLBACKHelloworldProcess(HWNDhWnd,UINTMessage,WPARAMWParam,LPARAMLParam)

{

switch(Message)

{caseWM_PAINT:

{HDCdc=BeginPaint(hWnd);

SetColor(dc,CL_RED);

TextOut(dc,50,50,"HelloWorld!");

EndPaint(hWnd);

}

return0;

}

returnDefWindowProc(hWnd,Message,WParam,LParam);//?

}

voidRegisterHelloworld(void)//手册P20

{TWNDCLASSwc;

memset(&wc,0,sizeof(wc));

wc.clForeground=CL_BTNTEXT;

wc.clBackground=CL_BTNFACE;

wc.lpfnWndProc=HelloworldProcess;//这里函数名是不是就是函数的指针?

wc.lpszClassName="Helloworld";

RegisterClass(&wc);

}

请问定义了回调函数HelloworldProcess,

问题1为什么必须要这句呢returnDefWindowProc(hWnd,Message,WParam,LParam);?加这一句的作用是干啥?

问题2我的c基础不是非常好,再问一下函数名是不是就是该函数的地址?可以直接把一个函数名赋给一个函数指针吗?不需要加取地址符(&)吗?

关键是第1个问题谢谢大家希望给些例子或易懂语言必追分感谢.

白希忱回答:
  1、加上这一句是让系统处理你不处理的数据,如果不加这一句的话,除非你的程序处理了所有消息,不然很有可能运行不正常   2、函数名就是函数的地址,就是函数的指针,不需要在进行取地址操作   回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应
最新更新
保卡通(baokatong.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
Copyright©2009-2021 保卡通 baokatong.com 版权所有