function miBoton_Callback(hObject, eventdata, handles)
% Almacenar la posición inicial del ratón y la posición original del botón
initialMousePosition = get(0, 'PointerLocation');
originalButtonPosition = get(hObject, 'Position');
% Callback para el movimiento del ratón
set(gcf, 'WindowButtonMotionFcn', {@moveButton, hObject, initialMousePosition, originalButtonPosition});
% Callback para la liberación del botón del ratón
set(gcf, 'WindowButtonUpFcn', {@stopMovingButton, hObject});
end
% Función para mover el botón mientras se mantiene presionado el botón del ratón
function moveButton(~, ~, buttonHandle, initialMousePosition, originalButtonPosition)
currentMousePosition = get(0, 'PointerLocation');
deltaMousePosition = currentMousePosition - initialMousePosition;
newPosition = originalButtonPosition + [deltaMousePosition(1), deltaMousePosition(2), 0, 0];
set(buttonHandle, 'Position', newPosition);
end
% Función para detener el movimiento del botón al soltar el botón del ratón
function stopMovingButton(~, ~, buttonHandle)
set(gcf, 'WindowButtonMotionFcn', ''); % Detener el movimiento al soltar el botón del ratón
set(gcf, 'WindowButtonUpFcn', ''); % Restablecer la función de liberación del botón del ratón
end