mfc自定义函数指针

mfc自定义函数指针,第1张

error C3867: “CtextdlgView::DrawEllipse”: 函数调用缺少参数列表.

这个错误的意思是: 你在调用这个函数时,所传递的参数个数不够。

你的这一句有误。

Draw(DrawEllipse,ptOri,point)

你的原意是:将“DrawEllipse”做为函数指针,以参数方式传给 Draw(...)方法。但由于写法不正确,导致了错误。

编译系统对你的代码理解是:将DrawEllipse()方法的结果做为Draw(...)调用的第一个参数。而它检查到DrawEllipse(。。。) 需要传入参数,但实际却没有,故提示:函数调用缺少参数列表。

要达到你的目的,你可以定义一个函数指针变量,用其指向相应的函数。再以这个函数指针变量做 为Draw(....)的参数,就OK 啦。

可以用CWnd::GetDlgItem()。

如果是MFC,得到的是CWnd *指针,如果是系统API,得到的是窗口句柄HWND。

MFC的函数可以参考MSDN。

下面是API的说明:

函数功能:该函数检索指定的对话框中的控件句柄。

函数原型:HWND GetDlgltem(HWND hDlg,int nlDDlgltem)

参数: hDlg:标识含有控件的对话框。 nlDDlgltem:指定将被检索的控件标识符。 返回值:如果函数调用成功则返回值为给定控件的窗口句柄。如果函数调用失败,则返回值为NULL,表示为一个无效的对话框句柄或一个不存在的控件。若想获得更多错误信息,请调用GetLastError函数。

备注:可以通过使用任何父子窗口对来使用GetDlgltem函数,而不仅只是对话框。只要hDlg参数指定一个父窗口,且子窗口有一个独立的标识符(象CreateWindow中hMenu参数指定的或创建子窗口的CreateWindowEx指定的那样),GetDlgltem就会返回一个有效的句柄到子窗口。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11929509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存