goldenix Posted December 5, 2008 Posted December 5, 2008 (edited) The gui is one Big Listview(height=100%,width=100%). Look at the fitrst lines, after the GUI is created My goal is to be able to drag the gui & if I click on a an item winactivate it. The functions work separately only, if I use both I cant Drag the GUI anymore. Run the code first & try to drag it. as you see its not happening. Now comment out & try again: GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ; Listview events It works. but i cant use Listview functions now. Is there a way to use those both at the same time? expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Include <GuiListView.au3> Opt("GUIOnEventMode",1) #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 161, 260, 193, 125,BitOR($WS_POPUP,$WS_BORDER),BitOr($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)) ;~ -------------------- ;~ Create listview $hListView = _GUICtrlListView_Create ($Form1, "", 0, 0, 160, 357) ; LEFT],[TOP],WIDTH],[HEIGHT] _GUICtrlListView_SetExtendedListViewStyle ($hListView, BitOR($LVS_AUTOARRANGE,$LVS_EX_FULLROWSELECT,$LVS_EX_DOUBLEBUFFER)) _GUICtrlListView_InsertColumn($hListView, 0, "Winlist:", 160) ;~ -------------------- GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### ; events ;~ -------------------- GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ; Listview events GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") ; Exitfunc GUISetOnEvent ($GUI_EVENT_PRIMARYDOWN, "_Drag" ) ;Drag GUI func ;~ -------------------- ;~ ======================================================== ;~ To be able to drag GUI ;~ ======================================================== Func _Drag() dllcall("user32.dll","int","SendMessage","hWnd", $Form1,"int",$WM_NCLBUTTONDOWN,"int", $HTCAPTION,"int", 0) EndFunc ;~ ======================================================== ;~ This thing is responcible for click events ;~ ======================================================== Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) Local $hWndFrom, $iCode, $tNMHDR, $hWndListView $hWndListView = $hListView If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode ;~ GUISetOnEvent ($GUI_EVENT_PRIMARYDOWN, "Drag" ) ;Drag GUI func Case $NM_CLICK ; Sent by a list-view control when the user double-clicks an item with the left mouse button Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam) ;~ ConsoleWrite('Index: ' & DllStructGetData($tInfo, "Index") & ' Subitem: ' & DllStructGetData($tInfo, "SubItem") & @CRLF) $Index = DllStructGetData($tInfo, "Index") $mail = StringSplit(_GUICtrlListView_GetItemTextString($hListView, $Index),'|') $mail = $mail[1] WinActivate($mail) ;~ ConsoleWrite($mail & @CRLF) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY ;~ ======================================================== ;~ Exit ;~ ======================================================== Func CLOSEClicked() Exit EndFunc ;~ Get Winlist & fill listview ;~ -------------------- $var = WinList() For $i = 1 to $var[0][0] $text = WinGetClassList($var[$i][0], "") If StringInStr($text,'ToolbarWindow32') And StringInStr($text,'SHELLDLL_DefView') Then _GUICtrlListView_AddItem ($hListView, $var[$i][0]) ; Add Empty Roe EndIf Next ;~ -------------------- While 1 Sleep(100) WEnd Edited December 6, 2008 by goldenix My Projects:[list][*]Guide - ytube step by step tut for reading memory with autoitscript + samples[*]WinHide - tool to show hide windows, Skinned With GDI+[*]Virtualdub batch job list maker - Batch Process all files with same settings[*]Exp calc - Exp calculator for online games[*]Automated Microsoft SQL Server 2000 installer[*]Image sorter helper for IrfanView - 1 click opens img & move ur mouse to close opened img[/list]
Zedna Posted December 5, 2008 Posted December 5, 2008 expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Include <GuiListView.au3> ;~ Opt("GUIOnEventMode",1) #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 161, 260, 193, 125,BitOR($WS_POPUP,$WS_BORDER),BitOr($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)) ;~ -------------------- ;~ Create listview $hListView = _GUICtrlListView_Create ($Form1, "", 0, 0, 160, 357) ; LEFT],[TOP],WIDTH],[HEIGHT] _GUICtrlListView_SetExtendedListViewStyle ($hListView, BitOR($LVS_AUTOARRANGE,$LVS_EX_FULLROWSELECT,$LVS_EX_DOUBLEBUFFER)) _GUICtrlListView_InsertColumn($hListView, 0, "Winlist:", 160) ;~ -------------------- GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### ; events ;~ -------------------- GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ; Listview events ;~ GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") ; Exitfunc ;~ GUISetOnEvent ($GUI_EVENT_PRIMARYDOWN, "_Drag" ) ;Drag GUI func ;~ -------------------- ;~ ======================================================== ;~ To be able to drag GUI ;~ ======================================================== Func _Drag() dllcall("user32.dll","int","SendMessage","hWnd", $Form1,"int",$WM_NCLBUTTONDOWN,"int", $HTCAPTION,"int", 0) EndFunc ;~ ======================================================== ;~ This thing is responcible for click events ;~ ======================================================== Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) Local $hWndFrom, $iCode, $tNMHDR, $hWndListView $hWndListView = $hListView If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode ;~ GUISetOnEvent ($GUI_EVENT_PRIMARYDOWN, "Drag" ) ;Drag GUI func Case $NM_CLICK ; Sent by a list-view control when the user double-clicks an item with the left mouse button Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam) ;~ ConsoleWrite('Index: ' & DllStructGetData($tInfo, "Index") & ' Subitem: ' & DllStructGetData($tInfo, "SubItem") & @CRLF) $Index = DllStructGetData($tInfo, "Index") $mail = StringSplit(_GUICtrlListView_GetItemTextString($hListView, $Index),'|') $mail = $mail[1] WinActivate($mail) ;~ ConsoleWrite($mail & @CRLF) _Drag() EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY ;~ ======================================================== ;~ Exit ;~ ======================================================== Func CLOSEClicked() Exit EndFunc ;~ Get Winlist & fill listview ;~ -------------------- $var = WinList() For $i = 1 to $var[0][0] $text = WinGetClassList($var[$i][0], "") If StringInStr($text,'ToolbarWindow32') And StringInStr($text,'SHELLDLL_DefView') Then _GUICtrlListView_AddItem ($hListView, $var[$i][0]) ; Add Empty Roe EndIf Next ;~ -------------------- ;~ While 1 ;~ Sleep(100) ;~ WEnd While 1 $msg = GuiGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Exit EndSelect WEnd Resources UDF ResourcesEx UDF AutoIt Forum Search
goldenix Posted December 6, 2008 Author Posted December 6, 2008 ...oÝ÷ Ûú®¢×+"²z ¢b¶V °±ìiz¸¦z{b¦¥Æ¦zêpØm+,yæÞ,y鬶ÞÂäx'ǥɫ¢+Ø ÍÀÌØí95} 1% ,ìM¹Ðä±¥Íе٥ܽ¹Ñɽ°Ý¡¸Ñ¡ÕÍȽձµ±¥Ì¸¥Ñ´Ý¥Ñ Ñ¡±Ðµ½ÕÍÕÑѽ¸($%1½°ÀÌØíÑ%¹¼ô±±MÑÉÕÑ ÉÑ ÀÌØíÑ95%Q5 Q%YQ°ÀÌØí¥±AÉ´¤($$ÀÌØí%¹àô±±MÑÉÕÑÑÑ ÀÌØíÑ%¹¼°ÅÕ½Ðí%¹àÅÕ½Ðì¤($$(íø$$%ݱ¥¬Í½µÝ¡É̥ͥѴ¼Ñ¡10±°($$%ÀÌØí%¹à±ÐìÐì´ÄQ¡¸$$$$($$$$ÀÌØíµ¥°ôMÑÉ¥¹MÁ±¥Ð¡}U% Ñɱ1¥ÍÑY¥Ý}Ñ%ѵQáÑMÑÉ¥¹ ÀÌØí¡1¥ÍÑY¥Ü°ÀÌØí%¹à¤°ÌäíðÌäì¤($$$$ÀÌØíµ¥°ôÀÌØíµ¥±lÅt$$$$$$($$$%]¥¹Ñ¥ÙÑ ÀÌØíµ¥°¤$$$$($$%±Í($$$%±±±° ÅÕ½ÐíÕÍÈÌȹ±°ÅÕ½Ðì°ÅÕ½Ðí¥¹ÐÅÕ½Ðì°ÅÕ½ÐíM¹5ÍÍÅÕ½Ðì°ÅÕ½Ðí¡]¹ÅÕ½Ðì°ÀÌØí½É´Ä°ÅÕ½Ðí¥¹ÐÅÕ½Ðì°ÀÌØí]5}9 1 UQQ=9=]8°ÅÕ½Ðí¥¹ÐÅÕ½Ðì°ÀÌØí!Q AQ%=8°ÅÕ½Ðí¥¹ÐÅÕ½Ðì°À¤($$%¹% My Projects:[list][*]Guide - ytube step by step tut for reading memory with autoitscript + samples[*]WinHide - tool to show hide windows, Skinned With GDI+[*]Virtualdub batch job list maker - Batch Process all files with same settings[*]Exp calc - Exp calculator for online games[*]Automated Microsoft SQL Server 2000 installer[*]Image sorter helper for IrfanView - 1 click opens img & move ur mouse to close opened img[/list]
rasim Posted December 6, 2008 Posted December 6, 2008 goldenixMy solution:expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiListView.au3> #include <Misc.au3> Opt("GUIOnEventMode", 1) Global $hDLL = DllOpen("User32.dll") #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 161, 260, 193, 125, BitOR($WS_POPUP, $WS_BORDER), BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW)) ;~ -------------------- ;~ Create listview $hListView = _GUICtrlListView_Create($Form1, "", 0, 0, 160, 357) ; LEFT],[TOP],WIDTH],[HEIGHT] _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_AUTOARRANGE, $LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER)) _GUICtrlListView_InsertColumn($hListView, 0, "Winlist:", 160) ;~ -------------------- GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### ; events ;~ -------------------- GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ; Listview events GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") ; Exitfunc ;~ -------------------- ;~ ======================================================== ;~ To be able to drag GUI ;~ ======================================================== Func _Drag() DllCall("user32.dll", "int", "SendMessage", "hWnd", $Form1, "int", $WM_NCLBUTTONDOWN, "int", $HTCAPTION, "int", 0) EndFunc ;==>_Drag ;~ ======================================================== ;~ This thing is responcible for click events ;~ ======================================================== Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) Local $hWndFrom, $iCode, $tNMHDR, $hWndListView $hWndListView = $hListView If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode Case $LVN_HOTTRACK If _IsPressed("01", $hDLL) Then _Drag() EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY ;~ ======================================================== ;~ Exit ;~ ======================================================== Func CLOSEClicked() DllClose($hDLL) Exit EndFunc ;==>CLOSEClicked ;~ Get Winlist & fill listview ;~ -------------------- $var = WinList() For $i = 1 To $var[0][0] $text = WinGetClassList($var[$i][0], "") If StringInStr($text, 'ToolbarWindow32') And StringInStr($text, 'SHELLDLL_DefView') Then _GUICtrlListView_AddItem($hListView, $var[$i][0]) ; Add Empty Roe EndIf Next ;~ -------------------- While 1 Sleep(100) WEnd
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now