我的系统是XP SP2
VC 是 2003.net
项目是一个对话框上有一个组合框控件(combobox),其它变量名为m_combox在对话框中的一个按钮的单击事件处理体中COMBOBOXINFO   comboinfo;
m_combox.GetBoxboBoxInfo ( &comboinfo );编译时不能通过,提示GetBoxboBoxInfo不是CComboBox的成员,如下:m:\VC7\en\enDlg.cpp(386): error C2065: “COMBOBOXINFO” : 未声明的标识符
m:\VC7\en\enDlg.cpp(386): error C2146: 语法错误 : 缺少“;”(在标识符“comboinfo”的前面)
m:\VC7\en\enDlg.cpp(386): error C2065: “comboinfo” : 未声明的标识符
m:\VC7\en\enDlg.cpp(387): error C2039: “GetComboBoxInfo” : 不是“CComboBox”的成员
m:\VC7\en\enDlg.cpp(387): error C3861: “comboinfo”: 即使使用参数相关的查找,也未找到标识符经查找,GetBoxboBoxInfo函数和COMBOBOXINFO结构的声明均在 winuser.h头文件中(该文件在安装目录下的\PlatformSDK\include中,并且VC项目的目录已经有了这个路径),并且在对话框的头文件或者在CPP源文件中加入#include "winuser.h"          均不能编译通过。注意:我分别有两台机器,都是安装的VC2003.NET,出现的现象一样。请问这是什么原因?如何解决。

解决方案 »

  1.   

    #if(WINVER >= 0x0500)
    BOOL GetComboBoxInfo(PCOMBOBOXINFO pcbi) const;
    #endif // WINVER >= 0x050需要在StdAfx.h中重新定义WINVER,使它的值>=0x0500
      

  2.   

    COMBOBOXINFO也一样对于这种问题,你应该看一下VC的头文件的相关定义。
      

  3.   

    感谢DentistryDoctor(MVP(Offline while working)) 的指点,修改后立即成功,再次感谢!原来也在MSDN中找到这句话,但就不知道在哪改,只是在对话框中的头文件和CPP文件中做定义,结果提示重复定义。现在好啦。给分。