저번에 제가 질문드렸던 내용인데요
다른거 찾던중에 이게 보이네요
방법들은 정말 많은거 같은데 영문은 솔직히 보기만해도 울렁거려서 잘안찾아지긴하네요
이 방법도 완벽하지는 않네요 . 완벽한 거는 버튼에 마우스를 갖다댈경우 버튼 이미지가 변화하고
다시 클릭시 또다시 변하고 , 마우스 땟을때 다시 원상태로 복귀해야하는데요
?
아래 참고 하실분들 ...
;===========================================================================================
AddGraphicButton("SampleButton1", A_WorkingDir . "\img1.bmp", "x32 y39 h70 w70 gBT", 70, 70)
Gui, Show,x1394 y268 h154 w137, Bitmap Buttons
OnMessage(0x200, "MouseMove")
OnMessage(0x2A3, "MouseLeave")
OnMessage(0x202, "MouseLeave") ; Restore image on LBUTTONUP
Return
MouseLeave(wParam, lParam, msg, hwnd)
{
? Global
? If (hwnd = SampleButton1_hwnd)
??? AddGraphicButton("SampleButton1", A_WorkingDir . "\img1.bmp", "x32 y39 h70 w70 gBT", 70, 70)
? Return
}
MouseMove(wParam, lParam, msg, hwnd)
{
? Global
? Static _LastButtonData = true
;? MsgBox, %hwnd%,%samplebutton1_hwnd%
? If (hwnd = SampleButton1_hwnd)
??? If (_LastButtonData != SampleButton1_hwnd)
????? AddGraphicButton("SampleButton1", A_WorkingDir . "\img2.bmp", "x32 y39 h70 w70 gBT", 70, 70)
? _LastButtonData := hwnd
? Return
}
BT:
MsgBox, 버튼 클릭함
return
GuiClose:
ExitApp
; *******************************************************************
; AddGraphicButton.ahk
; *******************************************************************
; Version: 2.1 Updated: May 20, 2007
; by corrupt
; Code contributions by: lingoist
; *******************************************************************
; VariableName = variable name for the button
; ImgPath = Path to the image to be displayed
; Options = AutoHotkey button options (g label, button size, etc...)
; bHeight = Image height (default = 32)
; bWidth = Image width (default = 32)
; *******************************************************************
; note: calling the function again with the same variable name will
; modify the image on the button
; *******************************************************************
AddGraphicButton(VariableName, ImgPath, Options="", bHeight=32, bWidth=32)
{
Global
Local ImgType, ImgType1, LR_LOADFROMFILE, NULL, BM_SETIMAGE
; BS_BITMAP := 128, IMAGE_BITMAP := 0, BS_ICON := 64, IMAGE_ICON := 1
LR_LOADFROMFILE := 16
BM_SETIMAGE := 247
NULL=
SplitPath, ImgPath,,, ImgType1
ImgTYpe := (ImgType1 = "bmp") ? 128 : 64
If (%VariableName%_img != "")
? DllCall("DeleteObject", "UInt", %VariableName%_img)
Else
? Gui, Add, Button,? v%VariableName% hwnd%VariableName%_hwnd +%ImgTYpe% %Options%
ImgType := (ImgType1 = "bmp") ? 0 : 1
%VariableName%_img := DllCall("LoadImage", "UInt", NULL, "Str", ImgPath, "UInt", ImgType, "Int", bWidth, "Int", bHeight, "UInt", LR_LOADFROMFILE, "UInt")
DllCall("SendMessage", "UInt", %VariableName%_hwnd, "UInt", BM_SETIMAGE, "UInt", ImgType,? "UInt", %VariableName%_img)
Return, %VariableName%_img ; Return the handle to the image
}?
;===========================================================================================
한가지 제가 궁금한 부분이 있는데요.
GUI를 만들어서 실행할경우 , 아무 버튼도 선택하지 않았는데 기본적으로 실행하자마자 선택되어있는게 있어요
이걸 없앨수 없나요.
위 이미지 버튼 상황을 예로 들자면,
?
보시다시피 처음 실행하면 왼쪽처럼 아무것도 없이 깔끔해야하는데 , 우측그림보면 쩜쩜쩜 테두리가 있습니다.
이게 선택이 되어있다는건데요. 이게 어쩔땐 나오고 어쩔땐 안나옵니다.
이것 뿐만 아니라 다른 GUI들도 만들면 꼭 저런 현상이 있네요.?
저걸 안보이게 안되는건가요.
이건 어떠세요?
https://github.com/AHK-just-me/Class_ImageButton