【error C2660: “GetDlgItem”: 函数不接受 1 个参数】

原创 2015年10月20日 10:48:21

MFC编程时,遇到如下错误:

error C2660: “GetDlgItem”: 函数不接受 1 个参数


(1)、CWindow::GetDlgItem

函数原型:HWND GetDlgItem( int nID)const;
参       数: nID代表接收消息的控件的标识;
返  回  值:标识所标记的控制窗口句柄;

(2)、CWnd::GetDlgItem

函数原型1:CWnd* pWnd = GetDlgItem(ID_XXX);(这个是一个类成员)

函数原型2:void CWnd::GetDlgItem( int nID, HWND *phWnd) const;

  参       数: nID代表接收消息的控件的标识,参数phWnd代表子类窗口的指针;
  返  回  值:标识所标记的控件(或子类窗口)的指针;
(3)、window sdk

       函数原型:HWND GetDlgItem(HWND hDlg, int nID);

参       数: nID代表接收消息的控件的标识,hDlg代表对话框的
返  回  值:如果函数调用成功则返回值为给定控件的窗口句柄。如果函数调用失败,则返回值为NULL,表示为一个无效的对话框句柄或一个不存在的控件。若想获得更多错误信息,请调用GetLastError函数。
可以看出他们是同名函数,很容易把他们搞混。而他们他们在使用时,都有自己的使用范围,如,一个参数的是在窗口中调用的函数,两个参数的是在平台SDK中调用的。

我本来想用的一个参数的,可是不对,查看许多资料发现不对:

解决办法有两个:

(1)、改变你调用此函数的环境或者调用的地方;

(2)、调用当前环境下对应的GetDlgItem函数

       例如:我遇到此问题时,是参看点击打开链接的博客做一个图片查看器。所以我使用的是第(1)中方法。

开始调用这个函数情况如下:先是在DrawPct函数里面调用GetDlgItem函数,然后再控件的事件函数CMFC_ONEDlg::OnBnClickedButton1()调用DrawPct函数;修改为:直接在控件的事件函数CMFC_ONEDlg::OnBnClickedButton1()调用GetDlgItem函数

本人菜鸟一枚,如有不对的地方,还请指正!
版权声明:本文为博主原创文章,未经博主允许不得转载。

错误 1 error C2660: 函数不接受 10 个参数

使用如下语句: if(m_ComPort.AsynSendData(pTransDate,pSummary,pCurrency,pType,pEndDate,pDeposit,pAccess,pBa...

微软VC各版本BUG: error C2660: 'new' : function does not take 3 parameters

今天在用GDI+写程序时,有HatchBrush * brushDotDiamond = new HatchBrush(HatchStyle25Percent,color);用VC6 SP6或VS20...

error C2660: “Gdiplus::GdiplusBase::operator new”: 函数不接受 3 个参数

今天用IMageEx来向窗口显示动画,用到了GDI+;结果遇到了     error C2660: “Gdiplus::GdiplusBase::operator new”: 函数不接受 3 个参数...

错误 C2660: Gdiplus::GdiplusBase::operator new: 函数不带三个参数

在使用 GDI + 的 Microsoft 基础类 (MFC) 应用程序的调试版本时, 可能会出现类似于以下内容的错误消息: 错误 C2660: Gdiplus::GdiplusBase::ope...
  • pjl1119
  • pjl1119
  • 2011年02月15日 16:06
  • 2940

微软VC各版本BUG: error C2660: 'new' : function does not take 3 parameters

微软VC各版本BUG: error C2660: 'new' : function does not take 3 parameters 2008-05-18 15:56   转自:点击打开链接...

VC GDI+: error C2660: 'new' : function does not take 3 parameters

今天在用GDI+写程序时,有 bmp = new Bitmap(L"E:\\1.png"); 用VC6 SP6或VS2005编译错误为error C2660: 'new' : function ...

error C2660: 'new' : function does not take 3 parameters

GDI+   NEW 一个image类时 出现如上错误信息   [c-sharp] view plaincopyprint? Image* pImage=new Imag...
  • zztoll
  • zztoll
  • 2012年03月23日 15:37
  • 504

error C2664:不能将参数 1 从“CString”转换为“const char *”

我在VC的unicode项目中使用如下代码时,提示错误“error C2664: "gethostbyname": 不能将参数 1 从"CString"转换为"const char *"”。 ...

“error C2664: “MessageBoxW”: 不能将参数 2 从“char [300]”转换为“LPCWSTR” 1> 与指向的类型无关;转换要求 reinterpret_”问题解决

为什么出现这个问题呢,因为我读到一个opencv的程序,其中调用MessageBox,下面为MessageBox的定义: MessageBox( HWND hWnd, LPCTSTR...

error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”

其实还可能出现其它类似的问题,如:error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”error C2039: “strcpy”: 不是“...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【error C2660: “GetDlgItem”: 函数不接受 1 个参数】
举报原因:
原因补充:

(最多只允许输入30个字)