这个错误的意思是: 你在调用这个函数时,所传递的参数个数不够。
你的这一句有误。
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就会返回一个有效的句柄到子窗口。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)