亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hv_menu.c

?? BC3.1編譯,小交換機計費系統.使用Dos做出如此好的界面,少有.
?? C
字號:
#include        <graphics.h>
#include        <string.h>
#include        <alloc.h>
#include        <stdlib.h>

#include        <DEF.INC>
#include        <KEY.INC>
#include        <FUNC.INC>
#include        <MENUFUNC.INC>

extern  UC Cursor_on;

#define BORDER			3
#define BACK_IN			16
#define KEY_DIST_X		16
#define KEY_DIST_Y		4
#define KEY_HIGH		26
#define TOPIC_HIGH		30
#define FIRST_LETTER_X	16
#define FIRST_LETTER_Y  16

static UC Menu_back_color;
static UC Menu_topic_color;
static UC Same_width;
static UC Esc_return;

static UC Flag_set_menu = FALSE;

#define	DRAW_CUR_KEY 	draw_key(key_sx[cur_choice], key_sy[cur_choice], \
						key_sx[cur_choice]+key_length[cur_choice%hnum], \
						key_sy[cur_choice]+KEY_HIGH, \
						selection[cur_choice], 7, 0)

#define CHANG_CUR_KEY	chang_key1(key_sx[cur_choice], key_sy[cur_choice], \
						key_sx[cur_choice]+key_length[cur_choice%hnum], \
						key_sy[cur_choice]+KEY_HIGH, \
						selection[cur_choice], 12)
#define	DRAW_CUR_KEY2 	draw_key(key_sx[cur_choice], key_sy[cur_choice], \
						key_sx[cur_choice]+key_length[cur_choice%hnum]-1, \
						key_sy[cur_choice]+KEY_HIGH-1, \
						selection[cur_choice], 10, 0)

#define CHANG_CUR_KEY2	chang_key3(key_sx[cur_choice], key_sy[cur_choice], \
						key_sx[cur_choice]+key_length[cur_choice%hnum]-1, \
						key_sy[cur_choice]+KEY_HIGH-1, \
						selection[cur_choice], 0)

#define RECOVER			setcolor(save_color);\
				setfillstyle(save_style.pattern,save_style.color);\
				Flag_set_menu = FALSE;\
				set_mouse_band(&mouse_band);\
				if ( old_cursor_stat )\
					cursor_on();\
				flash_continue();

/* ========================== set_menu() ============================ */
void set_menu(UC bkcolor, UC topic_color, UC same_width, UC esc_return)
{
	Menu_back_color = bkcolor;
	Menu_topic_color = topic_color;
	Same_width = same_width;
	Esc_return = esc_return;

	Flag_set_menu = TRUE;
}

UC hv_menu(UI x, UI y, UC hnum, UC total_num, UC *topic, UC *selection[])
{
UI lengthx, lengthy;        /* size of menu */
UC vnum;                    /* number of menu selection line */

UI key_sx[60], key_sy[60];  /* position of moving cursor, maxium 60 choices */
UI key_dist_x;	            /* step of moving cursor */
UI key_length[10];          /* length of cursor. */
							/* maxium 10 selections in 1 row */
UI back_in_add = 0;
UC cur_choice;				/* current choice, <total_num */
UI i,j;                     /* loop index */
UI key;                     /* key value input */

UI tmp_var;					/* keep some temp-value */

UI mx, my;
UC row, col;
UC last_mouse_stat = 0;	/* 0/1 = mouse unpressed/pressed */


MOUSE_BAND_STRUCT	mouse_band;
UC old_cursor_stat;
UI save_color;              /* save line color */
struct fillsettingstype save_style;                /* save fill style */
struct textsettingstype save_text;                /* save fill style */

printf("%lu ", farcoreleft());
	if (total_num<=1)
		exit_scr(1,"HV_MENU.C/hv_menu(): Argement 'total_num' must > 1.");
	if (hnum>total_num)
		hnum = total_num;

	/*  count vnum */
	if ( total_num%hnum == 0)
		vnum = total_num/hnum;
	else
		vnum = total_num/hnum+1;

	/*-------save state of graphics -------*/
	save_color = getcolor();
	getfillsettings(&save_style);
	flash_pause();
	old_cursor_stat = Cursor_on;
	get_mouse_band(&mouse_band);
	cursor_off();

	/*------- set_initial_paraments -------*/
	if (!Flag_set_menu)
	{
		Menu_back_color=2;
		Menu_topic_color=7;
		Same_width = FALSE;
		Esc_return = TRUE;
	}

	/*-------count length of cursor--------*/
	key_dist_x = 0;
	for (i=0; i<hnum; i++)
	{
		key_length[i] = 0;
		for (j=0; j<vnum; j++)
		{
			tmp_var = j*hnum+i;
			if ( tmp_var<total_num)
			{
				if ( key_length[i] < strlen(selection[tmp_var]) )
				{
					key_length[i] = strlen( selection[tmp_var] );
				}
			}
		}
		key_length[i] = (key_length[i]<<3)+10;
		key_dist_x += key_length[i];
	}

	if (Same_width)
	{
		for (i=1; i<hnum; i++)
			key_length[0] = max(key_length[0], key_length[i]);
		for (i=1; i<hnum; i++)
			key_length[i] = key_length[0];
		key_dist_x = hnum*key_length[0];
	}

	/*----------count length of menu ---------*/
	if (*topic)
	{
		lengthx = strlen(topic)<<3;
		if ( lengthx < key_dist_x + KEY_DIST_X*(hnum-1) + BACK_IN*2)
		{
			lengthx = key_dist_x + KEY_DIST_X*(hnum-1) + BACK_IN*2;
			key_dist_x = KEY_DIST_X;
		}
		else if ( hnum==1 )
		{
			back_in_add = (lengthx-key_dist_x-BACK_IN*2)>>1;
			back_in_add = (back_in_add>>4)<<4;
		}
		else
		{
			tmp_var = key_dist_x;
			key_dist_x = (lengthx-tmp_var-BACK_IN*2)/(hnum-1);
			if ( key_dist_x>KEY_DIST_X*2 )
			{
				back_in_add = (key_dist_x-2*KEY_DIST_X)/(hnum+1);
				back_in_add = (back_in_add>>4)<<4;

				key_dist_x = (lengthx-tmp_var-BACK_IN*2-back_in_add*2)/(hnum-1);
				tmp_var = ( (key_dist_x-KEY_DIST_X*2)*(hnum-1) )/hnum;
				key_dist_x = KEY_DIST_X*2;
				for (i=0; i<hnum; i++)
					key_length[i] += tmp_var;
			}
		}
	}
	else
	{
			lengthx = key_dist_x + BACK_IN*2 + KEY_DIST_X*(hnum-1);
			key_dist_x = KEY_DIST_X;
	}
	lengthx += FIRST_LETTER_X*2 + BORDER*2;

	lengthy = vnum*KEY_HIGH + (vnum-1)*KEY_DIST_Y + FIRST_LETTER_Y
			  + (FIRST_LETTER_Y-6) + BORDER*2;
	if (*topic)
	{
		lengthy += TOPIC_HIGH;
	}

	/*-----judge length of menu------*/
	if ( (x+lengthx>MAX_X) || (y+lengthy>MAX_Y) )
		exit_scr(1,"HV_MENU.C/hv_menu(): Window size is too large.");

	pop_back(x, y, x+lengthx-1, y+lengthy-1, Menu_back_color);
	if (*topic)
	{
		hz16_disp(x+BORDER+FIRST_LETTER_X,
				  y+BORDER+FIRST_LETTER_Y,
				  topic, Menu_topic_color);

	}

	key_sx[0] = x + BORDER + FIRST_LETTER_X + BACK_IN + back_in_add;
	key_sy[0] = y + BORDER + FIRST_LETTER_Y ;
	if (*topic)
		key_sy[0] += TOPIC_HIGH;

	for( i=1; i<total_num; i++)
	{
		if ( i%hnum == 0 )
			key_sx[i] = key_sx[0];
		else
			key_sx[i] = key_sx[i-1] + key_length[(i-1)%hnum] + key_dist_x;
		if (i<hnum )
			key_sy[i] = key_sy[0];
		else
			key_sy[i] = key_sy[i-hnum] + KEY_DIST_Y + KEY_HIGH;
	}

	for (i=1; i<total_num; i++)
		draw_key(key_sx[i], key_sy[i], key_sx[i]+key_length[i%hnum],
				 key_sy[i]+KEY_HIGH, selection[i], 7 /*12*/ , 0);

	chang_key1(key_sx[0], key_sy[0],
			  key_sx[0]+key_length[0], key_sy[0]+KEY_HIGH,
			  selection[0],
			  12);

	set_horizontal_band(key_sx[0]+1, key_sx[hnum-1]+key_length[hnum-1]-BORDER-2);
	set_vertical_band(key_sy[0]+1, key_sy[total_num-1]+KEY_HIGH-BORDER-1);
	cursor_on();
	cur_choice = 0;
	total_num --;			/* use the subscribe */

	gettextsettings(&save_text);
	settextstyle(3, HORIZ_DIR, 4);
	settextjustify(CENTER_TEXT, BOTTOM_TEXT);
	setcolor(6);

	outtextxy(x+23, y+38, "?");
	outtextxy(x+24, y+38, "?");
	setcolor(12);
	outtextxy(x+20, y+35, "?");
	outtextxy(x+21, y+35, "?");
	settextstyle(save_text.font, save_text.direction, save_text.charsize);
	settextjustify(save_text.horiz,save_text.vert);

	while (TRUE)
	{
		if ( !keybuf_nul() )
		{
			key = get_key0();
			switch (key)
			{
			case LEFT:
				cursor_off();
				DRAW_CUR_KEY;
				if (cur_choice==0)
					cur_choice = total_num;
				else
					cur_choice --;
				CHANG_CUR_KEY;
				cursor_on();
				break;

			case RIGHT:
				cursor_off();
				DRAW_CUR_KEY;
				if (cur_choice==total_num)
					cur_choice = 0;
				else
					cur_choice ++;
				CHANG_CUR_KEY;
				cursor_on();
				break;

			case UP:
				cursor_off();
				DRAW_CUR_KEY;
				if ( cur_choice>=hnum )
					cur_choice -= hnum;
				else
				{
					cur_choice += (vnum-1)*hnum;
					if ( cur_choice>total_num )
						cur_choice -= hnum;
				}
				CHANG_CUR_KEY;
				cursor_on();
				break;

			case DOWN:
				cursor_off();
				DRAW_CUR_KEY;
				cur_choice = cur_choice+hnum;
				if (cur_choice>total_num)
					cur_choice %= hnum;
				CHANG_CUR_KEY;
				cursor_on();
				break;

			case ENTER:
				cursor_off();
				rid_pop();
				RECOVER
				return(cur_choice+1);

			case ESC:
				if (Esc_return)
				{
					cursor_off();
					rid_pop();
					RECOVER
					return(0);
				}
				else
					sound_alarm();
				break;

			default:
				sound_alarm();
			}	/* end of switch(key) */
		}
		if ( left_button_pressed() )
			last_mouse_stat = 1;
		else if (last_mouse_stat==1)
		{
			last_mouse_stat = 0;
			get_mouse_position(&mx, &my);
			row = (my-key_sy[0])/(KEY_HIGH+KEY_DIST_Y);
			if (my>=key_sy[row*hnum]+KEY_HIGH-1)
				continue;

			col = 1;
			while ( col<hnum )
			{
				if (mx>key_sx[col])
					col++;
				else
					break;
			}
			col--;
			if (mx>key_sx[col]+key_length[col]-BORDER-2)
				continue;
			tmp_var =  row*hnum+col;
			if (tmp_var==cur_choice)
			{
				cursor_off();
				rid_pop();
				RECOVER
				return cur_choice+1;
			}
			else if (tmp_var<=total_num)
			{
				cursor_off();
				DRAW_CUR_KEY;
				cur_choice = tmp_var;
				CHANG_CUR_KEY;
				cursor_on();
			}
		}			/* end of else if (last_mouse_stat==1) */
	}   			/* end of while (TRUE) */
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二三区好的| 亚洲动漫第一页| 欧美一区二区三区免费观看视频| 久久aⅴ国产欧美74aaa| 欧美国产日本韩| 日韩三级精品电影久久久 | 91丝袜美腿高跟国产极品老师| 精品久久久久久无| 欧美系列在线观看| 久久丁香综合五月国产三级网站| 欧美高清在线一区二区| 91精品国产免费久久综合| 国产电影精品久久禁18| 青青草一区二区三区| 国产精品国产a级| 久久人人超碰精品| 亚洲精品在线免费观看视频| 色94色欧美sute亚洲线路一久| 精品一区二区三区视频| 亚洲一二三区不卡| 天天影视色香欲综合网老头| 一区二区三区免费观看| 亚洲摸摸操操av| 国产精品九色蝌蚪自拍| 国产精品久久久久久亚洲伦| 亚洲精品一区二区三区四区高清| 欧美一区二区三区视频在线观看| 91精品国产一区二区三区香蕉| 欧美日韩亚洲高清一区二区| 91久久一区二区| 99亚偷拍自图区亚洲| 色综合咪咪久久| 久久免费午夜影院| 日韩一区日韩二区| 亚洲综合色成人| 日本中文一区二区三区| 麻豆91精品91久久久的内涵| 精品在线免费视频| av一二三不卡影片| 欧洲在线/亚洲| 欧美美女bb生活片| 国产女同互慰高潮91漫画| 亚洲色图20p| 亚洲自拍都市欧美小说| 免费不卡在线视频| 成人夜色视频网站在线观看| 成人av电影免费在线播放| 欧美日韩一本到| 国产精品久久久久久久久快鸭| 精品国产凹凸成av人网站| 国产精品欧美久久久久一区二区| 一区二区三区四区在线免费观看 | 91精品国产综合久久久久久| 色婷婷综合视频在线观看| 欧美日韩在线电影| 久久蜜桃av一区二区天堂| 亚洲欧美日韩国产手机在线| 蜜桃视频第一区免费观看| 成人av免费在线| 欧美电视剧在线观看完整版| 国产调教视频一区| 日韩精品国产精品| 99re这里只有精品首页| 久久精品在这里| 日韩国产精品91| 97久久超碰国产精品电影| 91精品国产综合久久久久久久| 国产亚洲精品福利| 日韩1区2区日韩1区2区| 欧美午夜精品免费| 亚洲国产视频直播| 欧美日韩精品系列| 亚洲国产美女搞黄色| 色天天综合久久久久综合片| 国产精品护士白丝一区av| 国产传媒久久文化传媒| 欧美经典一区二区三区| 久久91精品国产91久久小草| 欧美日韩一级二级三级| 日日摸夜夜添夜夜添国产精品 | 捆绑变态av一区二区三区| 欧美精品一级二级三级| 午夜免费欧美电影| 欧美一级专区免费大片| 美女一区二区在线观看| 国产亚洲午夜高清国产拍精品| 国产乱人伦精品一区二区在线观看| 国产日韩三级在线| 99精品久久免费看蜜臀剧情介绍| 亚洲精品国产成人久久av盗摄| 在线观看中文字幕不卡| 精品无人码麻豆乱码1区2区 | 久久久国产精华| 色婷婷久久久久swag精品| 奇米精品一区二区三区四区| 久久久久久综合| 欧美日韩免费电影| 国产精品亚洲成人| 天堂va蜜桃一区二区三区| 国产午夜精品久久久久久免费视| 在线影视一区二区三区| 国产精品自拍毛片| 日韩国产一区二| 亚洲精品国产无天堂网2021| 日韩欧美在线网站| 在线观看91av| 在线观看网站黄不卡| 成人激情图片网| 国内偷窥港台综合视频在线播放| 亚洲成人激情社区| 一区二区三区四区亚洲| 久久久久久久久久看片| 精品日韩成人av| 91美女在线观看| 91国产精品成人| 欧美sm美女调教| 国产精品国产三级国产aⅴ中文| 亚洲视频一二区| 亚洲一区在线电影| 秋霞成人午夜伦在线观看| 国产成人精品一区二| 91久久精品午夜一区二区| 日韩精品一区二区三区四区| 99re亚洲国产精品| 亚洲国产成人高清精品| 亚洲日本青草视频在线怡红院| 国产精品萝li| 亚洲天堂av一区| 亚洲永久免费av| 久久精品国产亚洲aⅴ| 国产精品一品视频| 99视频超级精品| 69精品人人人人| 久久女同互慰一区二区三区| 中文成人综合网| 亚洲精品欧美专区| 看电影不卡的网站| 成人av动漫在线| 欧美一区2区视频在线观看| 精品国产91洋老外米糕| 亚洲特黄一级片| 久久国产精品99久久人人澡| 国产河南妇女毛片精品久久久 | 欧美午夜理伦三级在线观看| 日韩欧美国产午夜精品| 亚洲欧美一区二区三区极速播放 | 欧洲激情一区二区| 美女精品一区二区| 久久国内精品视频| 久久99在线观看| 色婷婷久久一区二区三区麻豆| 欧美丰满嫩嫩电影| 成人免费在线播放视频| 蜜臀av一级做a爰片久久| 成人app在线观看| 久久综合久久综合亚洲| 日韩综合一区二区| 色一情一伦一子一伦一区| 精品久久久久久久久久久久久久久 | 国产不卡视频在线观看| 欧美三级乱人伦电影| 国产精品传媒入口麻豆| 久久精品国产第一区二区三区| 91精彩视频在线| 亚洲乱码日产精品bd| 成人av网址在线| 国产香蕉久久精品综合网| 精品一区免费av| 欧美一区二区三区视频在线观看| 亚洲精品美腿丝袜| 色综合久久久久| 亚洲制服丝袜一区| 色天天综合久久久久综合片| 中文天堂在线一区| 91在线视频免费观看| 亚洲天堂精品视频| 色综合天天综合网天天狠天天 | 26uuu精品一区二区在线观看| 免费成人在线观看视频| 26uuu亚洲综合色欧美| 国产一区二区视频在线播放| 久久日韩精品一区二区五区| 精品一区二区三区av| 国产无一区二区| av在线播放成人| 日韩电影免费一区| 精品粉嫩超白一线天av| 成人小视频免费观看| 日韩理论电影院| 日韩女优毛片在线| voyeur盗摄精品| 亚洲3atv精品一区二区三区| 日韩午夜在线观看视频| 国产精品88av| 亚洲成a人片综合在线| 精品国产髙清在线看国产毛片| 成人在线综合网| 亚洲成av人片在线观看| 日本一区二区电影| 91精品国产综合久久福利软件 |