# AttributeMaxAndMin

int AttributeMaxAndMin (int panel, int attribute, int numberOfCtrls, int *maximum, int *ctrlWithMax, int *minimum, int *ctrlWithMin, . . .);

## Purpose

This function examines the value of the control attribute in each of the specified controls. It returns the minimum and maximum values of the attribute and the IDs of the controls it found those values on.

This function can be very useful for getting information needed to size and position controls when programatically creating dialog boxes.

The following example would set three buttons to be the same width:

{

int maxWidth;
AttributeMaxAndMin(thePanel, ATTR_WIDTH, 3,

&maxWidth, 0, 0, 0, button1, button2, button3);

SetAttributeForCtrls(thePanel, ATTR_WIDTH,

maxWidth, 3, button1, button2, button3);

}

## Parameters

Input
Name | Type | Description
panel | integer | The specifier for a particular panel that is currently in memory. This handle will have been returned by the LoadPanel, NewPanel, or DuplicatePanel function.
attribute | integer | Specify which attribute to examine in each control. The data type of the attribute must be integer (example: ATTR_TOP, ATTR_LABEL_WIDTH).
numberOfCtrls | integer | Specifies how many controls are in the control list. Pass zero for this parameter if you want the function to continue through the control list until it finds a control ID of zero. This feature makes it unnecessary to count the number of controls passed if the last control ID passed is always a zero.
controlList | any type (passed by value) | This parameter takes a variable number of comma separated control ID arguments. If the value of numberOfCtrls is zero, then the last control ID passed should be a zero in order to mark the end of the list of controls. Otherwise, numberOfCtrls should be set to the number of control IDs passed.
Output
Name | Type | Description
maximum | integer * | Returns the maximum value of the attribute in the list of controls. You may pass zero if you do not need this value.
ctrlWithMax | integer * | Returns the control ID of the control with the maximum value of the specified attribute. You may pass zero if you do not need this value.
minimum | integer * | Returns the minimum value of the attribute in the list of controls. You may pass zero if you do not need this value.
ctrlWithMin | integer * | Returns the control ID of the control with the minimum value of the specified attribute. You may pass zero if you do not need this value.

## Return Value

Name | Type | Description
status | integer | Returns 0 if the function succeeded or a negative error code if the function failed. The possible negative error codes are:
–1 to –999 | A User Interface Library error code. (Constants are available in userint.h.)
A description of any of these error codes can be obtained using the GetGeneralErrorString function in the toolbox.fp instrument driver.