menfan1 发表于 2015-10-14 11:18:08

看看啥内容

fubin681 发表于 2015-10-14 13:13:03

非常感谢您的分享

djjty 发表于 2015-10-14 14:37:34

谢谢分享!

fyq 发表于 2015-10-14 16:33:31

谢谢分享,!!!!!

gto250 发表于 2015-10-14 20:58:29

谢谢分享!!

kylelin 发表于 2015-10-14 21:12:58

这太有需要啦~~~

heroxianf 发表于 2015-10-15 08:53:47

确实需要这个功能,谢谢分享

tubaba 发表于 2015-10-15 10:32:17

赞一下赞一下赞一下赞一下

h20040606 发表于 2015-10-16 05:40:21

非常不错的实例,谢谢;额

kk_lee69 发表于 2015-10-16 09:37:29

回复 1# 298311657
老大等很久了~~~ 終於有解決的方案了

太感謝了!!希望 多來論壇看看發表一下造福一下我們呀

gyhhi 发表于 2015-10-16 10:40:44

楼主辛苦了!!!!!!!

kk_lee69 发表于 2015-10-16 10:48:16

回复 1# 298311657

老大 可以微調 原地編輯框的細部位置嗎測試過怎麼調整都沒用

就是 會出現兩層 如圖看起來就怪怪的

看過其他的範例 似乎 沒使用到 _GUICtrlEdit_Create

是這個造成的嗎??有其他的解決方案嗎??


孤狼饮血 发表于 2015-10-16 15:32:33

谢谢分享啊!!!!

298311657 发表于 2015-10-16 20:12:05

回复 27# kk_lee69

在xp下是没有这个问题的。

在win7下出现这种问题可以参考下面的代码。

                                Case $NM_DBLCLK ; 双击
                                        $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
                                        $iIndex = DllStructGetData($tInfo, "Index")
                                        $iSub = DllStructGetData($tInfo, "SubItem")
                                        $x = DllStructGetData($tInfo, "X")
                                        If ($iIndex <> -1) And ($iSub >= 0) And ($x > 16) Then;点击的x>16才响应原地编辑
                                                $Item = $iIndex
                                                $SubItem = $iSub
                                                ;==========计算编辑框坐标
                                                Local $aRect = _GUICtrlListView_GetSubItemRect($hListView, $iIndex, $iSub)
                                                Local $iEdit_X = $aRect + 4
                                                Local $iEdit_Y = $aRect + 3
                                                Local $iEdit_Width = _GUICtrlListView_GetColumnWidth($hListView, $iSub) + 3
                                                Local $iEdit_Height = $aRect - $aRect + 3
                                                If $iSub = 0 Then
                                                        Local $i1 = 0, $i2 = 0
                                                        If (BitAND(_GUICtrlListView_GetExtendedListViewStyle($hListView), $LVS_EX_CHECKBOXES) = $LVS_EX_CHECKBOXES) Then $i1 = 18;判断是否有复选框
                                                        If _GUICtrlListView_GetImageList($hListView, 1) Then $i2 = 20;判断是否有分配图像列表到列表视图控件
                                                        $iEdit_X += ($i2 + $i1)
                                                        $iEdit_Width -= ($i2 + $i1)
                                                EndIf
                                                $hEdit = GUICtrlCreateInput($aShowdata[$iIndex][$iSub], $iEdit_X, $iEdit_Y, $iEdit_Width, $iEdit_Height, BitOR($WS_CHILD, $WS_VISIBLE, $ES_LEFT))
                                                GUICtrlSetFont($hEdit, 12)
                                                GUICtrlSetState($hEdit, $GUI_FOCUS)
                                                $hEdit = GUICtrlGetHandle($hEdit)
                                                Send("{RIGHT}") ;方向 →
;~                                                 _GUICtrlEdit_SetSel($hEdit, 0, -1) ;全选编辑框文字
                                                HotKeySet("{ENTER}", "_EndItemEdit");设置热键响应回车
                                        EndIf

lanfengc 发表于 2015-10-16 23:52:32

回复 1# 298311657


    看看学习下.这方面资料需要学学. 数据库经常操作上万条数据显示. 比较影响体验.
页: 1 [2] 3 4 5 6 7 8 9 10 11
查看完整版本: ListView虚表 复选框 原地编辑例子 By_Crossdoor(2015-11-03更新)