Not sure this is helpful to someone other than me ...
#include <GUIConstantsEx.au3>
#include <GuiIPAddress.au3>
#include <WindowsConstants.au3>
#include <WinAPISys.au3>
Local $hGui = GUICreate("IP Address Control Enable/Disable Example", 400, 300)
Local $hIPAddress1 = _GUICtrlIpAddress_Create($hGui, 10, 10)
Local $hIPAddress2 = _GUICtrlIpAddress_Create($hGui, 10, 40)
Local $hIPAddress3 = _GUICtrlIpAddress_Create($hGui, 10, 70)
_GUICtrlIpAddress_Set($hIPAddress1, "192.168.1.10")
_GUICtrlIpAddress_Set($hIPAddress2, "255.255.255.0")
_GUICtrlIpAddress_Set($hIPAddress3, "192.168.1.1")
_GUICtrlIpAddress_Disable($hIPAddress1, 1)
_GUICtrlIpAddress_Disable($hIPAddress2, 7) ; 4 + 2 + 1
_GUICtrlIpAddress_Disable($hIPAddress3, 0xf) ; 8 + 4 + 2 + 1
GUISetState()
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
; #FUNCTION# ====================================================================================================================
; Name ..........: _GUICtrlIpAddress_Disable
; Description ...: Disable (grays-out) the specified fields of an IP Address control
; Syntax ........: _GUICtrlIpAddress_Disable($hWnd[, $iFields = 0])
; Parameters ....: $hWnd - Handle to the control
; $iFields - Fields to enable/disable. Can be a combination of the following :
; 0 : Enable all fields
; 1 : Disable the first field
; 2 : Disable the second field
; 4 : Disable the third field
; 8 : Disable the fourth field
; Return values .: On success1 - 1
; On failure - 0 and set @error to non zero value
; Author ........: jguinch
; ===============================================================================================================================
Func _GUICtrlIpAddress_Disable($hWnd, $iFields = 0)
Local $aFields[4], $n = 0, $hEdit
If Not IsInt($iFields) Or $iFields < 0 Or $iFields > 15 Then Return SetError(3, 0, 0)
Local $hWindow = _WinAPI_GetAncestor($hWnd)
If @error Then Return SetError(1, 0, 0)
If Not $hWindow Or Not WinExists($hWnd) Then Return SetError(2, 0, 0)
Local $aFields = _WinAPI_EnumChildWindows ($hWnd, False)
If @error Or $aFields[0][0] <> 4 Then Return SetError(1, 0, 0)
If $iFields = 0xf Then Return ControlDisable($hWindow, "", $hWnd)
Local $iRet = ControlEnable($hWindow, "", $hWnd)
For $i = 0 to 3
$iRet *= ( BitAND($iFields, 2 ^ $i) ? ControlDisable($hWindow, "", $aFields[4 - $i][0]) : ControlEnable($hWindow, "", $aFields[4 - $i][0]) )
Next
Return $iRet
EndFunc