找回密码
 加入
搜索
查看: 21447|回复: 11

[GUI管理] GUICtrlCreateListView怎么在项目内换行1000论坛币求助

  [复制链接]
发表于 2013-8-20 17:55:39 | 显示全部楼层 |阅读模式
悬赏1000金钱已解决
本帖最后由 黑色袜子 于 2013-8-20 23:29 编辑

解决了。再次感谢 破帽遮颜 不知道怎么称呼UID12的压力好大。哈哈,顺便感谢下小海牛。他给我的大洋。不然我也没那么豁达。哈哈
  1. #include <GUIConstantsEx.au3>
  2. #include <ListViewConstants.au3>
  3. #include <WindowsConstants.au3>
  4. #include <GuiListView.au3>
  5. #Region ### START Koda GUI section ### Form=
  6. $Form1 = GUICreate("Form1", 615, 438, 192, 124)
  7. $hListView = GUICtrlCreateListView("", 56, 56, 442, 326)
  8. GUISetState(@SW_SHOW)
  9. #EndRegion ### END Koda GUI section ###
  10. _GUICtrlListView_InsertColumn($hListView, 0, "Column 1", 400)
  11. _GUICtrlListView_InsertItem($hListView, "第一项目第一行"&@crlf&"第一项目第二行crlf无效", -1)
  12. _GUICtrlListView_InsertItem($hListView, "第2项目第一行"&@crlf&"第2项目第二行crlf无效",-1)
  13. _GUICtrlListView_InsertItem($hListView, "最好能设置项目的高度", -1)



  14. While 1
  15.         $nMsg = GUIGetMsg()
  16.         Switch $nMsg
  17.                 Case $GUI_EVENT_CLOSE
  18.                         Exit

  19.         EndSwitch
  20. WEnd
复制代码
昨天发了个GUICtrlCreateList的没得到解决,现在我换了GUICtrlCreateListView控件。
因为那个贴子无法弄悬赏的,就再开了个贴子。斑竹谅解下!

附件: 您需要 登录 才可以下载或查看,没有账号?加入
发表于 2013-8-20 17:55:40 | 显示全部楼层

  1. #include <GuiConstantsEx.au3>
  2. #include <GuiListView.au3>
  3. #include <GuiImageList.au3>
  4. #include <WindowsConstants.au3>

  5. Opt('MustDeclareVars', 1)

  6. Global Const $LVTVIF_AUTOSIZE = 0x00000000
  7. Global Const $LVTVIF_FIXEDWIDTH = 0x00000001
  8. Global Const $LVTVIF_FIXEDHEIGHT = 0x00000002
  9. Global Const $LVTVIF_FIXEDSIZE = 0x00000003
  10. Global Const $LVTVIF_EXTENDED = 0x00000004

  11. Global Const $LVTVIM_TILESIZE = 0x00000001
  12. Global Const $LVTVIM_COLUMNS = 0x00000002
  13. Global Const $LVTVIM_LABELMARGIN = 0x00000004

  14. Global Const $tagLVTILEINFO = "uint Size; int Item; uint Count; ptr Columns; ptr ColFmt"
  15. Global Const $tagLVTILEVIEWINFO = "uint Size; dword Mask; dword Flags; " & $tagSIZE & "; int Lines; " & $tagRECT

  16. _Main()

  17. Func _Main()
  18.         Local $hGUI, $hListView, $aiSize

  19.         $hGUI = GUICreate("ListView get tile size", 400, 300)

  20.         $hListView = _GUICtrlListView_Create($hGUI, "Item|Price", 2, 2, 394, 268)
  21.         _GUICtrlListView_SetView($hListView, 4)
  22.         _GUICtrlListView_SetTileSize($hListView, 390, 50)

  23.         _AddItem($hListView, "第一项目第二行crlf无效"&@CRLF&'第二行', '??')
  24.         _AddItem($hListView, "11111111111111111111111111111111"&@CRLF&'换行换行', '??')
  25.         GUISetState()

  26.         While 1
  27.                 Switch GUIGetMsg()
  28.                         Case $GUI_EVENT_CLOSE
  29.                                 ExitLoop
  30.                 EndSwitch
  31.         WEnd
  32.         GUIDelete()
  33. EndFunc

  34. Func _AddItem($hWnd, $sItem, $sPrice)
  35.         Local $iItem, $aiCols[1]
  36.         $iItem = _GUICtrlListView_AddItem($hWnd, $sItem)
  37.         _GUICtrlListView_AddSubItem($hWnd, $iItem, $sPrice, 1)
  38.         $aiCols[0] = 1
  39.         _GUICtrlListView_SetTileInfo($hWnd, $iItem, $aiCols)
  40. EndFunc

  41. Func _GUICtrlListView_SetTileSize($hWnd, $iTileWidth = Default, $iTileHeight = Default)
  42.         If $Debug_LV Then __UDF_ValidateClassName($hWnd, $__LISTVIEWCONSTANT_ClassName)
  43.         Local $tLVTVI, $iFlags, $fResult
  44.         $tLVTVI = DllStructCreate($tagLVTILEVIEWINFO)
  45.         DllStructSetData($tLVTVI, "Size", DllStructGetSize($tLVTVI))
  46.         DllStructSetData($tLVTVI, "Mask", $LVTVIM_TILESIZE)
  47.         $iFlags = $LVTVIF_AUTOSIZE
  48.         If $iTileWidth <> Default Then
  49.                 $iFlags = BitOR($iFlags, $LVTVIF_FIXEDWIDTH)
  50.                 DllStructSetData($tLVTVI, "X", $iTileWidth)
  51.         EndIf
  52.         If $iTileHeight <> Default Then
  53.                 $iFlags = BitOR($iFlags, $LVTVIF_FIXEDHEIGHT)
  54.                 DllStructSetData($tLVTVI, "Y", $iTileHeight)
  55.         EndIf
  56.         DllStructSetData($tLVTVI, "Flags", $iFlags)
  57.         If Not IsHWnd($hWnd) Then
  58.                 $fResult = GUICtrlSendMsg($hWnd, $LVM_SETTILEVIEWINFO, 0, DllStructGetPtr($tLVTVI))
  59.         Else
  60.                 $fResult = _SendMessage($hWnd, $LVM_SETTILEVIEWINFO, 0, DllStructGetPtr($tLVTVI))
  61.         EndIf
  62.         Return $fResult <> 0
  63. EndFunc

  64. Func _GUICtrlListView_GetTileSize($hWnd)
  65.         If $Debug_LV Then __UDF_ValidateClassName($hWnd, $__LISTVIEWCONSTANT_ClassName)
  66.         Local $tLVTVI, $fResult, $aRet[2]
  67.         $tLVTVI = DllStructCreate($tagLVTILEVIEWINFO)
  68.         DllStructSetData($tLVTVI, "Size", DllStructGetSize($tLVTVI))
  69.         DllStructSetData($tLVTVI, "Mask", $LVTVIM_TILESIZE)
  70.         If Not IsHWnd($hWnd) Then
  71.                 $fResult = GUICtrlSendMsg($hWnd, $LVM_GETTILEVIEWINFO, 0, DllStructGetPtr($tLVTVI))
  72.         Else
  73.                 $fResult = _SendMessage($hWnd, $LVM_GETTILEVIEWINFO, 0, DllStructGetPtr($tLVTVI))
  74.         EndIf
  75.         If Not $fResult Then Return SetError(1, 0, 0)
  76.         If BitAND(DllStructGetData($tLVTVI, "Flags"), $LVTVIF_FIXEDWIDTH) Then
  77.                 $aRet[0] = DllStructGetData($tLVTVI, "X")
  78.         Else
  79.                 $aRet[0] = Default
  80.         EndIf
  81.         If BitAND(DllStructGetData($tLVTVI, "Flags"), $LVTVIF_FIXEDHEIGHT) Then
  82.                 $aRet[1] = DllStructGetData($tLVTVI, "Y")
  83.         Else
  84.                 $aRet[1] = Default
  85.         EndIf
  86.         Return $aRet
  87. EndFunc

  88. Func _GUICtrlListView_SetTileInfo($hWnd, $iItem, $aiCols, $iStart = 0)
  89.         If $Debug_LV Then __UDF_ValidateClassName($hWnd, $__LISTVIEWCONSTANT_ClassName)
  90.         Local $tLVTI, $tCols, $fResult
  91.         $tLVTI = DllStructCreate($tagLVTILEINFO)
  92.         DllStructSetData($tLVTI, "Size", DllStructGetSize($tLVTI))
  93.         DllStructSetData($tLVTI, "Item", $iItem)
  94.         DllStructSetData($tLVTI, "Count", UBound($aiCols) - $iStart)
  95.         $tCols = DllStructCreate("uint[" & (UBound($aiCols) - $iStart) & "]")
  96.         For $i = $iStart To UBound($aiCols) - 1
  97.                 DllStructSetData($tCols, 1, Int($aiCols[$i]), $i - $iStart + 1)
  98.         Next
  99.         DllStructSetData($tLVTI, "Columns", DllStructGetPtr($tCols))
  100.         If Not IsHWnd($hWnd) Then
  101.                 $fResult = GUICtrlSendMsg($hWnd, $LVM_SETTILEINFO, 0, DllStructGetPtr($tLVTI))
  102.         Else
  103.                 $fResult = _SendMessage($hWnd, $LVM_SETTILEINFO, 0, DllStructGetPtr($tLVTI))
  104.         EndIf
  105.         Return $fResult <> 0
  106. EndFunc
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 2金钱 +100 收起 理由
tryhi + 80
黑色袜子 + 20 good~!

查看全部评分

 楼主| 发表于 2013-8-20 18:18:34 | 显示全部楼层
_GUICtrlListView_SetView($hListView, 4)
这个可以达到我的效果,但是设置不了宽度。
发表于 2013-8-20 22:30:46 | 显示全部楼层
没金币了~来求楼主贡献点。
发表于 2013-8-20 23:02:41 | 显示全部楼层
回复 3# 破帽遮颜

很有创意的代码

评分

参与人数 1金钱 +10 收起 理由
黑色袜子 + 10 哈哈,看来1000大洋还是挺值得的。

查看全部评分

 楼主| 发表于 2013-8-20 23:09:51 | 显示全部楼层
回复 4# 破帽遮颜


    还有个小问题:
能不能搞3行以及3行以上的?我刚才测试了下没搞出来。汗。
发表于 2013-8-20 23:17:50 | 显示全部楼层
回复 6# 黑色袜子

如果需要多行的话,建议自绘吧。
关于这种我有一个收藏代码,P大的,自绘view控件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +20 收起 理由
黑色袜子 + 20 碉堡,辛苦了。

查看全部评分

 楼主| 发表于 2013-8-20 23:22:43 | 显示全部楼层
回复 7# 破帽遮颜


    谢谢了。不知道钱到账没?
发表于 2013-8-20 23:30:16 | 显示全部楼层
呵呵~一直抽着没钱呢~现在有了,谢谢楼主

评分

参与人数 1金钱 +10 收起 理由
黑色袜子 + 10 看10L再帮帮忙吧。嘿嘿

查看全部评分

 楼主| 发表于 2013-8-20 23:41:53 | 显示全部楼层
回复 9# 破帽遮颜


    哈哈,是我谢谢你才对,还有个问题,就是
  1. GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
复制代码
无效了。
还有就是
  1. $menu = GUICtrlCreateContextMenu($ListView1)
复制代码
这个菜单也没了。汗
 楼主| 发表于 2013-8-20 23:54:08 | 显示全部楼层
回复 9# 破帽遮颜


    解决了。不好意思,我用回GUICtrlCreateListView这个函数创建就OK了
发表于 2013-8-24 14:40:08 | 显示全部楼层
可以去官网找哈
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2026-9-22 10:08 , Processed in 0.091323 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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