购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
函数结构:UF_UI_get_DA1_coords( short * x, short * y) 函数说明:
检索对话框区域1窗口的坐标。此函数检索DA1的当前位置。因此,如果用户移动了DA1对话框则这些新坐标是检索到的那些。
函数参数:
第1个参数为输出:
x代表参数变量,short * 为输出参数类型,DA1 x坐标
第2个参数为输出:
y代表参数变量,short * 为输出参数类型,DA1 y坐标
UF_UI_get_DA1_coords函数实例代码演示:
[quote]
/* Main Routine - Creates a Motif Dialog with Scale and OK Push */
/* Button Child Widgets */
/* UFUN includes */
#include <Xm/XmAll.h>
#include <uf.h>
#include <uf_ui_xt.h>
/* Local Function Declarations */
static void ok_dialog( Widget widget, XtPointer client,
XtPointer call );
static Widget makeButton( Widget parent, char *label,
Widget top_attachment);
static Widget makeScale( Widget parent, int min,
int max, String label);
static void create_dialog(Position x, Position y, Widget parent);
static Widget main;
void ufusr ( char *param, int *ret, int len)
{
Widget defaultParent;
int initialize_rcode,
uf_is_initialized, rcode;
Position x, y;
char msg[132];
/* Always initialize Ufun if it already isn't initialized */
uf_is_initialized = UF_is_initialized();
if( uf_is_initialized == 0 )
{
initialize_rcode = UF_initialize();
if( initialize_rcode != 0 )
{
printf("Could not initialize User Function\n");
return;
}
}
/* GET PARENT FOR MOTIF DIALOG ***********************/
<b>defaultParent = UF_UI_get_default_parent();</b>
/* CREATE MAIN WIDGET OF DIALOG */
<b>rcode = UF_UI_get_DA2_coords(&x, &y);</b>
if (rcode != UF_UI_SUCCESS)
{
UF_get_fail_message(rcode,msg);
UF_UI_set_status(msg);
}
create_dialog(x, y, defaultParent);
/* RUN THE DIALOG ************************************/
/* NOTE: this function will not return until the */
/* OK button is activated -- see ok_dialog(), below */
rcode = UF_UI_run_dialog( main);
if (rcode != UF_UI_SUCCESS)
{
UF_get_fail_message(rcode,msg);
UF_UI_set_status(msg);
}
}
/* Create the main custom dialog */
static void create_dialog(Position x, Position y, Widget parent)
{
int inx=0;
Arg arglist[20];
Widget scale, ok_button;
XtSetArg(arglist[inx], XmNx, x); inx++;
XtSetArg(arglist[inx], XmNy, y); inx++;
XtSetArg(arglist[inx], XmNdefaultPosition, FALSE); inx++;
main = XmCreateFormDialog( parent, "TestMain",
arglist, inx );
/* CREATE CHILD WIDGETS */
scale = makeScale( main, 0, 50, "Scale value" );
ok_button = makeButton( main, "OK", scale );
XtAddCallback( ok_button, XmNactivateCallback,
ok_dialog, NULL );
XtManageChild( scale);
XtManageChild( ok_button);
}
/* Activation Callback for the OK Button */
static void ok_dialog( Widget widget, XtPointer client,
XtPointer call )
{
int rcode;
char msg[132];
/* ... PROCESS DIALOG RESULTS ...*/
/* TERMINATE THE MOTIF DIALOG ************************/
rcode = UF_UI_exit_dialog();
if (rcode != UF_UI_SUCCESS)
{
UF_get_fail_message(rcode,msg);
UF_UI_set_status(msg);
}
UF_terminate();
}
/* Make a Scale Widget */
static Widget makeScale( Widget parent, int min,
int max, String label)
{
Arg arglist[20];
int inx = 0;
Widget scaleWidget = NULL;
XmString xmLabel = NULL;
inx = 0;
XtSetArg( arglist[inx], XmNmaximum, max ); inx++;
XtSetArg( arglist[inx], XmNminimum, min ); inx++;
XtSetArg( arglist[inx], XmNorientation, XmHORIZONTAL );
inx++;
XtSetArg( arglist[inx], XmNshowvalue, True ); inx++;
XtSetArg( arglist[inx], XmNscaleMultiple, 1 ); inx++;
XtSetArg( arglist[inx], XmNrightAttachment,
XmATTACH_WIDGET); inx++;
XtSetArg( arglist[inx], XmNrightWidget, parent); inx++;
XtSetArg( arglist[inx], XmNleftAttachment,
XmATTACH_WIDGET); inx++;
XtSetArg( arglist[inx], XmNleftWidget, parent); inx++;
if ( label != NULL )
{
xmLabel = XmStringCreateSimple( label );
XtSetArg( arglist[inx], XmNtitleString, xmLabel );
inx++;
}
scaleWidget = XmCreateScale( parent, "testScale", arglist,
inx );
if ( xmLabel != NULL ) XmStringFree( xmLabel );
return scaleWidget;
}
/* Make a Push Button Widget */
static Widget makeButton( Widget parent, char *label,
Widget top_attachment)
{
Widget button;
Arg arglist[10];
int inx=0;
XmString xms;
xms = XmStringCreateSimple(label);
XtSetArg( arglist[inx], XmNlabelString, xms); inx++;
XtSetArg( arglist[inx], XmNtopAttachment, XmATTACH_WIDGET);
inx++;
XtSetArg( arglist[inx], XmNtopWidget, top_attachment);
inx++;
XtSetArg( arglist[inx], XmNrightAttachment,
XmATTACH_WIDGET); inx++;
XtSetArg( arglist[inx], XmNrightWidget, parent); inx++;
XtSetArg( arglist[inx], XmNleftAttachment,
XmATTACH_WIDGET); inx++;
XtSetArg( arglist[inx], XmNleftWidget, parent); inx++;
button = XmCreatePushButton( parent, "testButton",
arglist, inx);
XmStringFree(xms);
return(button);
}
int ufusr_ask_unload(void)
{
return ( UF_UNLOAD_SEL_DIALOG );
}
[/quote]