Jump to content

Gui Elemanlarını Mesajla Alma


mustafakara
 Share

Recommended Posts

arkadaşlar merhabalar
aşağıdaki örnekte tab tuşu ile gezerken hangi inputun üzerine geldiysem o inputun adını mesajla almak istiyorum
benim örneğimde inputun üzerine gelince veriyor ancak ayrılırken de aynı mesajı veriyor
hatta yazarken de uyardığı için yazamıyorum.
ben sadece inputun üzerine geldiğimde uyarı almak istiyorum nasıl birşey yapmalıyım?


örnek


Global $gui = GUICreate("Giriş Paneli", 500, 250)
Global $Input1 = GUICtrlCreateInput("", 112, 18, 185, 21, 0x0001)
Global $Input2 = GUICtrlCreateInput("", 112, 62, 185, 21, BitOR(0x0020, 0x0001))

GUIRegisterMsg(273, "MY_WM_COMMAND")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit



EndSwitch
WEnd
Func MY_WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
Switch $lParam
Case GUICtrlGetHandle($Input1)
MsgBox(0,"slm","input 1 üzerindesiniz")

Case GUICtrlGetHandle($Input2)
MsgBox(0,"slm","input 2 üzerindesiniz")

EndSwitch
EndFunc
Link to comment
Share on other sites

1 - GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND") Bu mesajı kodlar içerisinde gui'nin tanımlandığı yere koymaman gerekir.

2 - Ayrıca fonksiyon dışında tanımlanan değişkenlerin varsayılan tipi "global"dır. Yani fonksiyon dışında tanımladığın değişkenlerin başına (çok özel bir durum söz konusu olmadıkça) "Global" koymana gerek yok.

3 - Dediğini yapabilmen için $En_killfocus, $En_setfocus, $en_update olaylarını kullanman gerek.

 

Senin için şöyle bir şey yaptım.

#include <GuiEdit.au3>
#include <WinApi.au3>
#include <WindowsConstants.au3>
Global $gui = GUICreate("Giriş Paneli", 500, 250)
Global $Input1 = GUICtrlCreateInput("", 112, 18, 185, 21)
Global $Input2 = GUICtrlCreateInput("", 112, 62, 185, 21)
GUISetState(@SW_SHOW)

GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case -3
			Exit



	EndSwitch
WEnd

Func MY_WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
	#forceref $hWnd, $iMsg
	Local $hWndFrom, $iIDFrom, $iCode
	$hWndFrom = $lParam
	$iIDFrom = _WinAPI_LoWord($wParam)
	$iCode = _WinAPI_HiWord($wParam)
	Switch $hWndFrom
		Case GUICtrlGetHandle($Input1), $Input1
			Switch $iCode

				Case $EN_UPDATE ; Text'e herhangi bir veri girildiğinde ya da silindiğinde.
					ToolTip(GUICtrlRead($Input1))
				Case $EN_KILLFOCUS ; TextBox'tan ayrıldığında.
					ToolTip("güle güle!")
				Case $EN_SETFOCUS ; TextBox'a tıklandığında.
					ToolTip("hoş geldin!")
			EndSwitch
	EndSwitch
EndFunc   ;==>MY_WM_COMMAND

Kolay gelsin.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...