找回密码
 加入
搜索
查看: 5569|回复: 9

[AU3基础] 【已解决】查了很多资料,也找了很多资料出现listview双击问题

  [复制链接]
发表于 2011-5-8 22:26:12 | 显示全部楼层 |阅读模式
本帖最后由 xiezhang6263 于 2011-5-10 20:06 编辑

GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")问题,老是出现以下问题
C:\Documents and Settings\Administrator\桌面\新建文件夹 (3)\新1.au3(127,26) : WARNING: $WM_NOTIFY: 使用前并未进行声明.
GUIRegisterMsg($WM_NOTIFY,
~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Administrator\桌面\新建文件夹 (3)\新1.au3(991,54) : WARNING: $NM_CLICK: 使用前并未进行声明.
                                Case $NM_CLICK  ;左击
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Administrator\桌面\新建文件夹 (3)\新1.au3(993,56) : WARNING: $NM_DBLCLK: 使用前并未进行声明.
                                Case $NM_DBLCLK   ;双击
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Administrator\桌面\新建文件夹 (3)\新1.au3(1001,56) : WARNING: $NM_RCLICK: 使用前并未进行声明.
                                Case $NM_RCLICK   ;右击
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Administrator\桌面\新建文件夹 (3)\新1.au3(127,26) : ERROR: $WM_NOTIFY: 未声明的全局变量.
GUIRegisterMsg($WM_NOTIFY,
~~~~~~~~~~~~~~~~~~~~~~~~~^
请问高手这是哪里出现问题了,能说明下吗?我的GUICtrlCreateListView建立在GUICtrlCreateTabItem下面的,想对其实现双击打开网页的目的。

不是在GUICtrlCreateTabItem下面测试正常
发表于 2011-5-8 22:38:29 | 显示全部楼层
本帖最后由 lpxx 于 2011-5-8 22:40 编辑

论坛有实例的
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GUIListView.au3>
 
$Form1 = GUICreate("Form1", 410, 310)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
 
$ListView1 = GUICtrlCreateListView("||", 8, 8, 400, 300)
GUISetState(@SW_SHOW)
For $I = 1 To 10
        GUICtrlCreateListViewItem($I, $ListView1)
Next
 
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
 
Func WM_NOTIFY($hWndGUI, $MsgID, $WParam, $LParam)
 
        Local $tagNMHDR, $Event, $hWndFrom, $IDFrom
        Local $tagNMHDR = DllStructCreate("int;int;int", $LParam)
        If @error Then Return $GUI_RUNDEFMSG
        $IDFrom = DllStructGetData($tagNMHDR, 2)
        $Event = DllStructGetData($tagNMHDR, 3)
        $tagNMHDR = 0
        Switch $IDFrom;选择产生事件的控件
                
                Case $ListView1
 
                        Switch $Event; 选择产生的事件
                                
                                Case $NM_CLICK ; 左击
;~                                      ...
                                        
                                Case $NM_DBLCLK ; 双击
                                        $Index = _GUICtrlListView_GetSelectedIndices($ListView1)
                                        If Not StringLen($Index) Then; 这里用以判断是否选定了ListViewItem
                                                MsgBox(0, "", "未选定")
                                                Return
                                        EndIf
                                        MsgBox(0,0, _GUICtrlListView_GetItemText($ListView1, Number($Index), 0))
                                        
                                Case $NM_RCLICK ; 右击
;~                                      ...
                        EndSwitch
                        
        EndSwitch
        
        Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY


原文链接http://www.autoitx.com/thread-6100-1-1.html
发表于 2011-5-9 07:07:52 | 显示全部楼层
本帖最后由 netegg 于 2011-5-9 07:14 编辑

回复 2# lpxx

很明显是有个库文件没有include
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
还有这些错误,找地方睡觉
发表于 2011-5-9 12:39:19 | 显示全部楼层
学到知识了..
 楼主| 发表于 2011-5-10 01:24:58 | 显示全部楼层
回复 3# netegg

谢谢我加了WindowsConstants.au3就出现与ModernMenuRaw.au3无法共用,论坛了也看了,afan版主说,,,,,在 #include 时把 #include<WindowsConstants.au3> 放在前面,#include<ModernMenuRaw.au3> 放在后面。但还是出现错误。一用GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")就出现错误。弄到现在还是很头疼,无法解决共用的问题。
 楼主| 发表于 2011-5-10 01:26:46 | 显示全部楼层
回复 2# lpxx

我加了WindowsConstants.au3就出现与ModernMenuRaw.au3无法共用。所以没办法实现双击的任务了。
发表于 2011-5-10 01:41:12 | 显示全部楼层
本帖最后由 happytc 于 2011-5-10 01:42 编辑
回复  lpxx

我加了WindowsConstants.au3就出现与ModernMenuRaw.au3无法共用。所以没办法实现双击的任务 ...
xiezhang6263 发表于 2011-5-10 01:26


把ModernMenuRaw.au3相应的申明的常量注释掉就可以了。
我也发觉,有时用象If Not IsDeclared("NIN_SELECT") Then Global Const $NIN_SELECT = 0x0400这样子的,会不灵,au3还是会告你“前面已经申明过了”的提示
发表于 2011-5-10 02:28:16 | 显示全部楼层
不要在SCITE中运行,直接双击运行。
发表于 2011-5-10 05:22:39 | 显示全部楼层
回复 5# xiezhang6263
把代码精简了之后大概就没问题了,没试过
 楼主| 发表于 2011-5-10 20:06:22 | 显示全部楼层
回复 8# pusofalse


谢谢,用此方法可以解决。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-3 16:54 , Processed in 0.088620 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表