#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Gui=GUICreate("Тест")
$btn1 = GUICtrlCreateButton("Первая", 25, 10, 90, 30)
GUICtrlSetFont(-1, 9)
$btn2 = GUICtrlCreateButton("Вторая", 25, 50, 90, 30)
GUICtrlSetFont(-1, 9)
GUISetState()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
#forceref $hWnd, $iMsg, $wParam
; Обработка события кнопок
Local Const $BCN_HOTITEMCHANGE = -1249
Local $tNMBHOTITEM = DllStructCreate("hwnd hWndFrom;int IDFrom;int Code;dword dwFlags", $lParam)
Local $nNotifyCode = DllStructGetData($tNMBHOTITEM, "Code"), _
$nID = DllStructGetData($tNMBHOTITEM, "IDFrom"), _
$hCtrl = DllStructGetData($tNMBHOTITEM, "hWndFrom"), _
$dwFlags = DllStructGetData($tNMBHOTITEM, "dwFlags")
Switch $nNotifyCode
Case $BCN_HOTITEMCHANGE ; Win XP и выше
If BitAND($dwFlags, 0x10) = 0x10 Then ; наведена
GUICtrlSetFont($nID,11, 700) ; а цвет то и нельзя менять, кнопка превращается в лэйбл какой-то
ElseIf BitAND($dwFlags, 0x20) = 0x20 Then ; оставлена
; GUICtrlSetFont($nID, -1) ; -1 - системный размер
GUICtrlSetFont($nID, 9, 400)
EndIf
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc