Jump to content

@Larry, Help!


Recommended Posts

I am just trying this. Don't put too much value on whether or not I can finish the project. I know little about DllCall, so I thought I would ask the man most suited for the task.

I have tried to attach a syslistview item to a gui form. Here is my current code:

#include <guiconstants.au3>

$ID_LISTVIEW = 100
$LVS_REPORT = 0x0001
$LVS_EDITLABELS = 0x200

$LOGPIXELSX = 88
$LOGPIXELSY = 90

$DIRECTION_VERTICAL = 1
$DIRECTION_HORIZONTAL = 0

GuiCreate("Test")
$parhwnd = WinGetHandle("Test")
guisetstate()

$listhwnd = DllCall("user32.dll", "hwnd", "CreateWindow" ,"str", "SysListView32", "str", "", "long", BitOr($WS_CHILD, $LVS_REPORT, $LVS_EDITLABELS), "int", 0, "int", 0, "int", 100 * TwipsPerPixelX(), "int", 100 * TwipsPerPixelY(), "hwnd", $parhwnd, "int", $ID_LISTVIEW, "int", 0, "none", 0)
msgbox(0,"",@error)

sleep(5000)


func GetDC($hwnd)
   $ret = DllCall("user32.dll", "long", "GetDC", "long", $hwnd)
   Return $ret[0]
EndFunc

Func ReleaseDC($hwnd, $hdc)
   $ret = DllCall("user32.dll", "long", "ReleaseDC", "long", $hwnd, "long", $hdc)
   Return $ret[0]
EndFunc

Func GetDeviceCaps($hdc, $nindex)
   $ret = DllCall("gdi32.dll", "long", "GetDeviceCaps", "long", $hdc, "long", $nindex)
   Return $ret[0]
EndFunc

func TwipsPerPixelX()
   $dc = GetDC(0)
   $ppi = GetDeviceCaps($dc, $LOGPIXELSX)
   $dc = ReleaseDC(0, $dc)
   return 1 / 1440 * $ppi
EndFunc

func TwipsPerPixelY()
   $dc = GetDC(0)
   $ppi = GetDeviceCaps($dc, $LOGPIXELSY)
   $dc = ReleaseDC(0, $dc)
   return 1 / 1440 * $ppi
EndFunc

Have I missed something?

Who else would I be?
Link to comment
Share on other sites

Thanks a lot Larry, for the $parhwnd, I had it that way at the first, but was wondering (when it didn't work) if the handle returned was not a windows handle, but an Au3 handle. Either way, Can you see any workarounds for any way to add items to the listview that does not require a structure?

Who else would I be?
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...