怪问题,我在使用该函数时,VB6.0 SP6 老是提示“编译错误:用户定义类型不能用”的错误,
该函数的声明如下,其中只用到POINTAPI的结构,为何???
Public Declare Function MenuItemFromPoint Lib "user32" (ByVal hwnd As Long, ByVal hMenu As Long, ByVal ptScreen As POINTAPI) As Long
查阅了MSDN中的相关资料,参数应当很简单,就是无法调用,我的环境是Win2KAS SP4 +VB6.0SP6。

解决方案 »

  1.   

    Declare Function MenuItemFromPoint Lib "user32" Alias "MenuItemFromPoint" (ByVal hWnd As Long, ByVal hMenu As Long, ByVal ptScreen As POINTAPI) As Long说明 
    判断哪个菜单条目包含了屏幕上一个指定的点 
    返回值 
    Long,包含了指定点的条目的位置。如果没有菜单条目包含了指定的点,就返回-1 
    参数表 
    参数 类型及说明 
    hWnd Long,包含了指定菜单的那个窗口的句柄 
    hMenu Long,菜单句柄 
    ptScreen POINTAPI,点的位置。如hMenu是一个顶级菜单条,这个点就用hWnd窗口的窗口坐标表示。否则,它采用窗口的客户区坐标表示 
    我也查了一下资料,没仔细试,应该不会有问题的
      

  2.   

    to aohan:是的,想象中应当不会出现问题,但故障依旧啊,就是不知为何?
    我在编译时VB就是在停留在此处报错。刚刚也查了一下,没有找到网上使用此函数的例子。