3ds Max C++ API Reference
ICustEdit Class Referenceabstract

#include <custcont.h>

+ Inheritance diagram for ICustEdit:

Public Member Functions

virtual void GetText (MCHAR *text, int ct)=0
 
virtual void GetText (MSTR &text) const =0
 
virtual int GetTextLength () const =0
 
virtual void SetText (const MCHAR *text)=0
 
virtual void SetText (int i)=0
 
virtual void SetText (float f, int precision=3)=0
 
virtual int GetInt (BOOL *valid=NULL)=0
 
virtual float GetFloat (BOOL *valid=NULL)=0
 
virtual void SetLeading (int lead)=0
 
virtual void WantReturn (BOOL yesNo)=0
 
virtual BOOL GotReturn ()=0
 
virtual void GiveFocus ()=0
 
virtual BOOL HasFocus ()=0
 
virtual void WantDlgNextCtl (BOOL yesNo)=0
 
virtual void SetNotifyOnKillFocus (BOOL onOff)=0
 
virtual void SetBold (BOOL onOff)=0
 
virtual void SetParamBlock (ReferenceTarget *pb, int subNum)=0
 
- Public Member Functions inherited from ICustomControl
virtual HWND GetHwnd ()=0
 
virtual void Enable (BOOL onOff=TRUE)=0
 
virtual void Disable ()=0
 
virtual BOOL IsEnabled ()=0
 
virtual void Enable2 (BOOL onOff=TRUE)=0
 
virtual INT_PTR Execute (int cmd, ULONG_PTR arg1=0, ULONG_PTR arg2=0, ULONG_PTR arg3=0)
 
virtual void SetTooltip (bool bEnable, const MCHAR *text)=0
 Sets a tooltip for the custom control. More...
 
CoreExport void UpdateEnableState (Animatable *anim, int subNum)
 Helper function to disable or enable this UI control based on whether the Animatable associated with it is keyframable or not (locked parameter or scripted parameters are not keyframable). More...
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 
virtual UtilExport BaseInterfaceGetInterface (Interface_ID id)
 
template<class InterfaceType >
InterfaceType * GetTypedInterface ()
 

Additional Inherited Members

- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 

Detailed Description

See also
Class ICustomControl, Custom User Interface Controls.
Description:
This control is a simple text input control. The user may type any string into the field and the plug-in is notified when the user presses the ENTER key. There are also methods to parse and return integer and floating point values entered in the control.

To initialize the pointer to the control call:

ICustEdit *GetICustEdit(HWND hCtrl);
Definition: custcont.h:2255
CoreExport ICustEdit * GetICustEdit(HWND hCtrl)

To release the control call:

CoreExport void ReleaseICustEdit(ICustEdit *ice)

The value to use in the Class field of the Custom Control Properties dialog is: CustEdit The following messages may be sent by the edit control: WM_CUSTEDIT_ENTER - This message is sent when the control loses focus or when the user presses the ENTER key while using the control. Note that if the control is associated with a spinner or slider, no notification occurs on losing focus if the edit field value equals the spinner/slider value.

wParam contains the custom edit control resource ID. lParam contains the HWND of custom edit control.

Member Function Documentation

◆ GetText() [1/2]

virtual void GetText ( MCHAR text,
int  ct 
)
pure virtual
Remarks
This retrieves the text entered into the control.
Parameters
textStorage for the text to retrieve.
ctSpecifies the maximum length of the string returned.

◆ GetText() [2/2]

virtual void GetText ( MSTR text) const
pure virtual
Remarks
This retrieves the text entered into the control.
Parameters
textStorage for the text to retrieve.

◆ GetTextLength()

virtual int GetTextLength ( ) const
pure virtual
Remarks
This retrieves the length of the text entered into the control. It returns the length of the text in characters (so without the terminating NULL). Note that this value may be higher than the actual length of the text when it contains multi-byte characters.

◆ SetText() [1/3]

virtual void SetText ( const MCHAR text)
pure virtual
Remarks
This method places the text into the control for editing.
Parameters
textThe text to place in the control.

◆ SetText() [2/3]

virtual void SetText ( int  i)
pure virtual
Remarks
This method allows you to pass in an integer value to the control. The integer is converted to a string and displayed in the control.
Parameters
iThis value is converted to a string and displayed in the control.

◆ SetText() [3/3]

virtual void SetText ( float  f,
int  precision = 3 
)
pure virtual
Remarks
This method allows you to pass in a floating point value to the control. The float is converted to a string and displayed in the control.
Parameters
fThis value is converted to a string and displayed in the control.
precisionThe precision argument is simply the number of decimal places that get represented in the string that appears in the edit field. So if the arguments were (1.0f/3.0f, 3) then the string "0.333" would appear in the edit field.

◆ GetInt()

virtual int GetInt ( BOOL *  valid = NULL)
pure virtual
Remarks
This method parses and returns an integer value from the control.
Parameters
validThis pointer, if passed, is set to TRUE if the input is 'valid'; otherwise FALSE. FALSE indicates that something caused the parsing of the input to terminate improperly. An example is a non-numeric character. So for example, if the user entered "123jkfksdf" into the field the valid pointer would be set to FALSE.

◆ GetFloat()

virtual float GetFloat ( BOOL *  valid = NULL)
pure virtual
Remarks
This method parses and returns a floating point value from the control.
Parameters
validThis pointer, if passed, is set to TRUE if the input is 'valid'; otherwise FALSE. FALSE indicates that something caused the parsing of the input to terminate improperly. An example is a non-numeric character. So for example, if the user entered "123jkfksdf" into the field this pointer would be set to FALSE.

◆ SetLeading()

virtual void SetLeading ( int  lead)
pure virtual
Remarks
A developer doesn't normally need to call this method. This offsets the text vertically in the edit control.
Parameters
leadThis parameter specifies the number of pixels to offset.

◆ WantReturn()

virtual void WantReturn ( BOOL  yesNo)
pure virtual
Remarks
This method allows custom handling of the RETURN key. If you pass TRUE to this method an EN_CHANGE message will be sent to the control when the RETURN key is pressed. The EN_CHANGE message is sent when the user has taken any action that may have altered text in an edit control so developer need to also call GotReturn() (documented below) to see if it was indeed a RETURN key press.
Parameters
yesNoIf TRUE, then when the user presses the RETURN key in that control, the edit field will send an EN_CHANGE message to the owner, and calling GotReturn() will return TRUE.
Sample Code:
Below is the way this is handled by the Hit By Name dialog. In that dialog, when the user enters a wild card pattern into the name match field and presses RETURN, the dialog is exited with the items matching the pattern selected. The way this is accomplished is by pass TRUE to WantReturn() and then processing the EN_CHANGE message on the control. If GotReturn() is TRUE the Win32 function PostMessage() is used to send the IDOK message to exit the dialog. If this wasn't done, pressing RETURN in the edit control would only enter the text – the user would have to move the mouse over the OK button and press it.

case IDC_HBN_PATTERN:
if (HIWORD(wParam)==EN_CHANGE)
{
iName = GetICustEdit(GetDlgItem(hDlg,IDC_HBN_PATTERN) );
iName->GetText(buf,256);
ct = _tcslen(buf);
if (ct && ct < _countof(buf) - 1 && buf[ct - 1] != _T('*'))
_tcscat_s(buf, _T("*"));
SendMessage(sbn->hList, LB_RESETCONTENT, 0, 0);
sbn->SetPattern(GetDlgItem(hDlg, IDC_HBN_PATTERN), buf);
sbn->BuildHitList(ct);
if(iName->GotReturn())
PostMessage(hDlg,WM_COMMAND,IDOK,0);
}
break;

◆ GotReturn()

virtual BOOL GotReturn ( )
pure virtual
Remarks
This method should be called on receipt of an EN_CHANGE message. It return TRUE if pressing the RETURN key generated the message; otherwise FALSE.

◆ GiveFocus()

virtual void GiveFocus ( )
pure virtual
Remarks
Calling this method gives the control the focus to receive input.

◆ HasFocus()

virtual BOOL HasFocus ( )
pure virtual
Remarks
Returns TRUE if the control has the focus to receive input; otherwise FALSE.

◆ WantDlgNextCtl()

virtual void WantDlgNextCtl ( BOOL  yesNo)
pure virtual
Remarks
Determines whether the TAB key may be used to jump to the next control in the tab sequence.
Parameters
yesNoTRUE to enable the TAB key to move to the next control; FALSE to disable the TAB key from moving the focus.

◆ SetNotifyOnKillFocus()

virtual void SetNotifyOnKillFocus ( BOOL  onOff)
pure virtual
Remarks
Normally when a user exits an edit filed the notification WM_CUSTEDIT_ENTER is sent. Many plug-ins key off this message to finalize the input of values. For instance, if the user is entering a value into an edit field and they hit the TAB key to leave the field the value should be entered. Normally this is the desired behavior. However, as a special case condition, if a developer does not want to update the value, this method may be called so the WM_CUSTEDIT_ENTER notification won't be sent when the edit control loses focus.
Parameters
onOffTRUE to turn on; FALSE to turn off.

◆ SetBold()

virtual void SetBold ( BOOL  onOff)
pure virtual
Remarks
Sets the text font in the edit control to display in a bold format or normal.
Parameters
onOffTRUE to turn bolding on; FALSE to turn off.

◆ SetParamBlock()

virtual void SetParamBlock ( ReferenceTarget pb,
int  subNum 
)
pure virtual