使用P版的ListViewEditEvent遇到的问题
在使用P版的ListViewEditEvent这个UDF的时候,遇到了一个问题,就在在编辑的时候,使用鼠标右键时,不能完全显示出EDIT系统右键菜单。图如下:
这是我在WIN7系统上使用时候的截图,右键菜单上,鼠标经过时候还能显示出文字来,但是在xp系统上,鼠标经过也不能显示出文字
希望能解决一下!是什么地方出现了问题
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <ListViewEditEvent.au3>
#include <GuiMenu.au3>
#include <ComboConstants.au3>
#include <GuiTab.au3>
#include <GuiComboBoxEx.au3>
#include <GuiButton.au3>
#include <GuiImageList.au3>
Opt("GUIOnEventMode", 1)
$gui = GUICreate("test", 721, 647, -1, -1)
$hImage = _GUIImageList_Create(1, 18)
$wuliao_listview = GUICtrlCreateListView("序号|物料编号", 4, 280, 710, 358, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))
_GUICtrlListView_SetExtendedListViewStyle($wuliao_listview, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES));, $LVS_EX_TRACKSELECT
_GUICtrlListView_SetColumn($wuliao_listview, 0, "序号", 40, 2)
_GUICtrlListView_SetColumn($wuliao_listview, 1, "物料编号", 100, 2)
_GUICtrlListView_SetImageList($wuliao_listview, $hImage, 1)
GUICtrlCreateListViewItem("0|0", $wuliao_listview)
_GUICtrlListView_RegisterEditEvent($wuliao_listview)
GUISetOnEvent($GUI_EVENT_CLOSE, "out");退出
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY");注册系统消息,列表视图框的修改和菜单
#EndRegion ### END Koda GUI section ###
While 1
Sleep(10)
WEnd
Func out()
ProcessClose(@AutoItPID)
Exit
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $tBuffer, $iCode, $iItem, $iSubItem, $hWndFrom
$tBuffer = DllStructCreate($tagNMLISTVIEWHDR, $ilParam)
$iCode = DllStructGetData($tBuffer, "Code")
$hWndFrom = HWnd(DllStructGetData($tBuffer, "hWndFrom"))
Switch $iCode
Case $LVN_EDITBEGIN ; 将要开始编辑。
Local $tEditBegin = DllStructCreate($tagLISTVIEW_EDITBEGIN, $ilParam)
$iItem = DllStructGetData($tEditBegin, "Item")
$iSubItem = DllStructGetData($tEditBegin, "SubItem")
; 判断是否为SubItem 0,若是,拒绝编辑。
If ($iSubItem = 0) Then
DllStructSetData($tEditBegin, "Show", 0)
Else
DllStructSetData($tEditBegin, "Show", 1) ; 此句可以删除,因为默认就是为1.
EndIf
Case $LVN_EDITEND ; 结束编辑。
Local $tEditEnd, $iFlags
$tEditEnd = DllStructCreate($tagLISTVIEW_EDITEND, $ilParam)
$iFlags = DllStructGetData($tEditEnd, "EndFlags")
; 判断是否输入enter键结束,若非,不保存编辑结果。
; If ($iFlags <> $LVEF_ENTER) Then
; DllStructSetData($tEditEnd, "AutoComplete", 0)
; Else
; DllStructSetData($tEditEnd, "AutoComplete", 1)
; EndIf
; 以上的2句DllStructSetData,可以删除其中一句,
; 因为AutoComplete的值默认为_GUICtrlListView_RegisterEditEvent中$fAutoComplete的值。
Case $LVN_SELCHANGING ; 所选条目即将发生改变。
Local $tChanging, $iFlags
$tChanging = DllStructCreate($tagLISTVIEW_SELCHANGING, $ilParam)
$iFlags = DllStructGetData($tChanging, "ChangeFlags")
; 判断是否是鼠标选择,若否,拒绝选择。
;If ($iFlags <> $LVCF_LBUTTON) And ($iFlags <> $LVCF_RBUTTON) Then
; DllStructSetData($tChanging, "AllowChange", 0)
;EndIf
Case $LVN_SELCHANGED ; 所选条目已经改变。
Local $tChanged, $iItem, $iPreviousItem, $iFlags, $sFlags = "Left"
$tChanged = DllStructCreate($tagLISTVIEW_SELCHANGED, $ilParam)
$iItem = DllStructGetData($tChanged, "CurrentItem") ; 当前所选。
$iPreviousItem = DllStructGetData($tChanged, "PreviousItem") ; 之前所选。
$iFlags = DllStructGetData($tChanged, "ChangeFlags") ; 选择标识。
If ($iFlags = $LVCF_RBUTTON) Then $sFlags = "Right"
Case $LVN_ITEMCHECKING ; CheckBox 状态即将改变。
Local $tChecking, $iFlags
$tChecking = DllStructCreate($tagLISTVIEW_ITEMCHECKING, $ilParam)
$iFlags = DllStructGetData($tChecking, "Flags")
$iItem = DllStructGetData($tChecking, "Item")
; 判断是否为第9条目,或是否不使用鼠标左键进行选择,若成立,拒绝CheckBox的选择。
;If ($iFlags <> $LVICF_LBUTTON) Or ($iItem = 9) Then
; DllStructSetData($tChecking, "AllowCheck", 0)
;EndIf
Return 0 ; allow the default processing
EndSwitch
$tBuffer = 0
EndFunc ;==>WM_NOTIFY
楼主是准备做个管理进销存工具?? 楼主是准备做个管理进销存工具??
qiziyun7410 发表于 2011-5-12 03:04 http://www.autoitx.com/images/common/back.gif
希望到时提供源码,学习,呵呵 在使用P版的ListViewEditEvent这个UDF的时候,遇到了一个问题,就在在编辑的时候,使用鼠标右键时,不能完全 ...
gto250 发表于 2011-5-11 18:05 http://www.autoitx.com/images/common/back.gif
没看明白你说的情况是什么意思,看截图edit不是已经嵌入listview了吗,右键是指什么 回复 4# netegg
对嵌入的EDIT进行右键点击,你就能发现问题了。
对截图中空白的框你不觉得奇怪吗? 我承认我也遇到了。以前还真没发现。 我没用P版的,哈哈,当时测试也是有点问题 好帖子!!!路过要顶上一顶!!!!!超给力
http://www.jiudingji8.com/images/xiaoshuo.gif
淘宝网女装夏装新款2011韩版 淘宝网女装秋装新款 异世邪君5200 斗破苍穹5200 吞噬星空5200 天珠变5200 遮天5200 异界魅影逍遥5200 永生5200 大周皇族5200 灵罗戒5200 黄金瞳5200
页:
[1]