1

Тема: AHK: выпадающий список в ListView

Необходимо сделать одно из полей ListView выпадающим списком. Другими словами встроить в существующий список DropDownList.

Например как в Exel:
http://blogs.technet.com/blogfiles/tasush/WindowsLiveWriter/Excel_C956/image_thumb_4.png

2

Re: AHK: выпадающий список в ListView

"Сделать" одно из полей ListView выпадающим списком невозможно, ListView не поддерживает такой функции. Просто сделайте своё GUI со списком поверх него.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: выпадающий список в ListView

teadrinker
Вы не могли бы показать, как извлечь положение и размеры нужной ячейки в ListView?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: выпадающий список в ListView

Serzh пишет:

Необходимо сделать одно из полей ListView выпадающим списком. Другими словами встроить в существующий список DropDownList.

То есть ListView принадлежит окну сторонней программы?

5

Re: AHK: выпадающий список в ListView

serzh82saratov пишет:

teadrinker
Вы не могли бы показать, как извлечь положение и размеры нужной ячейки в ListView?

Своего приложения или чужого?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: AHK: выпадающий список в ListView

Своего.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK: выпадающий список в ListView

Gui, Add, ListView, hwndhListView, ColumnTitle1|ColumnTitle2
LV_Add("", "Item1", "Item2"), LV_Add("", "Item1", "Item2")
Gui, Show, y200

oCoords := GetListViewItemCoords(2, 1, hListView, 1)   ; второй ряд первая колонка
MsgBox, % "Абсолютные координаты:`n`nleft = " . oCoords.left . "`ntop = " . oCoords.top
                               . "`nright = " . oCoords.right . "`nbottom = " . oCoords.bottom
                              
oCoords := GetListViewItemCoords(2, 1, hListView)
MsgBox, % "Координаты относительно верхнего левого угла контрола ListView:`n"
                              . "`nleft = " . oCoords.left . "`ntop = " . oCoords.top
                              . "`nright = " . oCoords.right . "`nbottom = " . oCoords.bottom
ExitApp

GetListViewItemCoords(row, col, hListView, abs = "")   ; если abs = true, координаты относительно экрана,
{                                                      ; если false — относительно контрола ListView
   VarSetCapacity(Rect, 16, 0)
   NumPut(col = 1 ? 1 : col - 1, Rect, 4, "UInt")
   SendMessage, LVM_GETSUBITEMRECT := 0x1038, row - 1, &Rect,, ahk_id %hListView%
   l := NumGet(Rect, "UInt"), t := NumGet(Rect, 4, "UInt")
   r := NumGet(Rect, 8, "UInt"), b := NumGet(Rect, 12, "UInt")
   (col = 1) ? (lprev := l, l := 0, r := lprev)
   
   if abs
   {
      WinGetPos, X, Y,,, ahk_id %hListView%
      l += X, r += X, t += Y, b += Y
   }
   
   Return {left: l, top: t, right: r, bottom: b}
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: выпадающий список в ListView

teadrinker
Спасибо за ответ!

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui