⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spinbox.c

📁 setlocale[LC_ALL, ""] XtSetLanguageProc[NULL, NULL, NULL] //建立顶级窗口 toplevel = XtVaApp
💻 C
字号:
	/* File: spinbox.c */	//Runit: XENVIRONMENT=SpinBox.ad ./spinbox	#include <locale.h>	#include <Xm/Xm.h>	#include <Xm/SpinB.h>	#include <Xm/TextF.h>        char *months[] = {                "January(一月)", "Febrary(二月)", "March(三月)", "April(四月)",                "May(五月)", "June(六月)", "July(七月)","August(八月)",                "September(九月)", "October(十月)", "November(十一月)",                "December(十二月)"        };	void ValueChanged(Widget w, XtPointer client_data,		XmSpinBoxCallbackStruct *cbs)	{		char *str;		printf("Value Changed: ");  		switch (cbs->reason) {			case XmCR_OK:				printf ("reason = XmCR_OK\n\n"); break;			case XmCR_SPIN_NEXT:				printf ("reason = XmCR_SPIN_NEXT\n"); break; 			case XmCR_SPIN_PRIOR:				printf ("reason = XmCR_SPIN_PRIOR\n"); break;			case XmCR_SPIN_FIRST:				printf ("reason = XmCR_SPIN_FIRST\n"); break;			case XmCR_SPIN_LAST:				printf ("reason = XmCR_SPIN_LAST\n"); break; 			default: break;		}		XmStringGetLtoR(cbs->value, "", &str);		printf("position: %d\n", cbs->position);		printf("value: %s\n", str);		XFree(str);	}	void ModifyVerify(Widget w, XtPointer client_data,		XmSpinBoxCallbackStruct *cbs)	{		printf ("Modify Verify invoked: ");		switch ( cbs->reason ) {			case XmCR_OK: 				printf ("reason = XmCR_OK\n"); break;			case XmCR_SPIN_NEXT:				printf ("reason = XmCR_SPIN_NEXT\n"); break;			case XmCR_SPIN_PRIOR:				printf ("reason = XmCR_SPIN_PRIOR\n"); break;			case XmCR_SPIN_FIRST:				printf ("reason = XmCR_SPIN_FIRST\n"); break; 			case XmCR_SPIN_LAST:				printf ("reason = XmCR_SPIN_LAST\n"); break; 			default: break;		}		printf("position: %d\n", cbs->position);	}	int main(int argc, char *argv[])	{		int i, n;		Arg args[10];		XtAppContext app;		Widget toplevel, spinbox, textf;		XmString str_months[12];		setlocale(LC_ALL, "");		XtSetLanguageProc(NULL, NULL, NULL);		//建立顶级窗口		toplevel = XtVaAppInitialize(&app, "SpinBox", NULL, 0,			&argc, argv, NULL, NULL);		//建立SpinBox		n = 0;		XtSetArg(args[n], XmNwidth, 400 ); 			n++;		XtSetArg(args[n], XmNheight, 100 ); 			n++;		//XtSetArg(args[n], XmNarrowLayout, XmARROWS_FLAT_END);	n++;		XtSetArg(args[n], XmNrepeatDelay, 0); 			n++;		//XtSetArg(args[n], XmNarrowOrientation, XmHORIZONTAL);	n++;		spinbox  = XmCreateSpinBox(toplevel, "SpinBox", args, n);		XtManageChild(spinbox);		XtAddCallback (spinbox, XmNvalueChangedCallback, 			(XtCallbackProc)ValueChanged, (XtPointer)NULL);		XtAddCallback (spinbox, XmNmodifyVerifyCallback, 			(XtCallbackProc)ModifyVerify, (XtPointer)NULL);		//SpinBox的输入条/*		n = 0;		XtSetArg(args[n], XmNspinBoxChildType, XmNUMERIC); 	n++;		XtSetArg(args[n], XmNminimumValue, 1); 			n++;		XtSetArg(args[n], XmNmaximumValue, 10); 		n++;		//XtSetArg(args[n], XmNincrementValue, 3); 		n++;		XtSetArg(args[n], XmNposition, 2); 			n++;		XtSetArg(args[n], XmNpositionType, XmPOSITION_INDEX); 	n++;*/		for(i=0; i<12; i++)			str_months[i] = XmStringCreateSimple(months[i]);		n = 0;		XtSetArg (args[n], XmNspinBoxChildType, XmSTRING); 	n++;		XtSetArg (args[n], XmNposition, 3); 			n++;		XtSetArg (args[n], XmNnumValues, 12);	 		n++;		XtSetArg (args[n], XmNvalues, str_months); 		n++;		textf  = XmCreateTextField(spinbox, "textf", args, n);		XtManageChild(textf);		//显示窗口		XtRealizeWidget(toplevel);		//进入事件循环		XtAppMainLoop(app);	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -