How to Disable OK Button
Version Info
Minimum Origin Version Required: Origin 8 SR0
Description
Following code show how to construct a simple dialog using Origin C GETN macros. The functions in the dialog included:
- Attach a checkbox named Auto with a numeric edit box.
- How to show error message and disable OK button.
The dialog will show error message if uncheck Auto checkbox and input 0 to control.
Example
#include <GetNbox.h>
void GetN_Disable_OK_ex()
{
GETN_TREE(tr)
GETN_BEGIN_BRANCH(Table, _L("Output")) GETN_OPTION_BRANCH(GETNBRANCH_OPEN)
GETN_NUM(start, "Start Time", 1) GETN_ADD_AUTO(1)
GETN_NUM(stop, "Stop Time", 100) GETN_ADD_AUTO(1)
GETN_END_BRANCH(Table)
if( GetNBox(tr, _event_func) ) // if clicked OK button
{
out_tree(tr);
}
}
int _event_func(TreeNode& tr, int nRow, int nEvent, DWORD& dwEnables, LPCSTR lpcszNodeName, WndContainer& getNContainer, string& strAux, string& strErrMsg)
{
TreeNode trStart = tr.Table.start;
TreeNode trStop = tr.Table.stop;
if( !trStart || !trStop )
return 0;
if( nEvent > 0 )// nEvent > 0 on change from individul control from nRow with cntrl Type in nEvent
{
if( 0 == lstrcmp(lpcszNodeName, "start") )
tree_check_replace_auto(trStart, 1);
if( 0 == lstrcmp(lpcszNodeName, "stop") )
tree_check_replace_auto(trStop, 100);
}
else
{
bool bOKEnable = trStart.dVal < trStop.dVal && 0 != trStart.dVal && 0 != trStop.dVal;
O_SET_BIT(dwEnables, GETNGEVT_OK_ENABLE, bOKEnable);
if( !bOKEnable )
strErrMsg = "Please input valid number for start and stop control.";
}
return 0;
}
|