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

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

?? hv_menu.bak

?? BC3.1編譯,小交換機計費系統.使用Dos做出如此好的界面,少有.
?? BAK
字號:
#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一区二区三区免费野_久草精品视频
精品sm捆绑视频| 91热门视频在线观看| 亚洲精品少妇30p| 久久精品一区二区三区av| 欧美日韩高清在线播放| 欧美人成免费网站| 在线观看视频一区二区| 色网站国产精品| 日本道色综合久久| 欧美色中文字幕| 欧美日韩国产免费一区二区| 色悠久久久久综合欧美99| 日本韩国精品在线| 欧美日韩aaaaa| 欧美va天堂va视频va在线| 精品国产91久久久久久久妲己 | 成人免费福利片| 成人免费观看视频| 色噜噜久久综合| 9191国产精品| 日韩欧美区一区二| 国产亚洲成aⅴ人片在线观看| 国产精品天干天干在线综合| 18成人在线观看| 亚洲午夜一二三区视频| 日韩精品1区2区3区| 蜜桃视频在线观看一区| 国产米奇在线777精品观看| 粉嫩av亚洲一区二区图片| 一本色道亚洲精品aⅴ| 在线观看三级视频欧美| 91精品国产手机| 精品国产乱码久久久久久1区2区| 中文字幕av不卡| 婷婷丁香久久五月婷婷| 国产综合色在线| 欧美丝袜丝交足nylons| 日韩精品一区二区三区视频播放| 国产午夜亚洲精品午夜鲁丝片| 亚洲国产精品av| 日本中文在线一区| 91免费在线看| 久久久久久电影| 亚洲第一av色| 99精品视频在线播放观看| 日韩精品一区二区三区在线观看| 亚洲欧洲日韩在线| 久久精品99国产国产精| av一区二区久久| 日韩欧美亚洲一区二区| 一区二区三区影院| 狠狠网亚洲精品| 欧美日韩国产一级二级| 亚洲图片另类小说| 国产精品亚洲第一| 欧美日韩国产成人在线免费| 亚洲欧美另类久久久精品2019| 美女免费视频一区二区| 欧美性色综合网| 国产精品国模大尺度视频| 国产精品综合二区| 欧美一二三区在线观看| 亚洲午夜免费电影| 99精品桃花视频在线观看| 国产日韩欧美在线一区| 久久99精品久久久久| 欧美日韩国产精选| 亚洲欧美日韩电影| 99国产精品视频免费观看| 国产欧美一区二区精品仙草咪| 久久不见久久见免费视频1| 欧美肥妇bbw| 亚洲国产cao| 91久久精品一区二区二区| 亚洲图片你懂的| 色又黄又爽网站www久久| 中文字幕一区二区三区乱码在线 | 99久久99久久综合| 国产精品色哟哟网站| 顶级嫩模精品视频在线看| 久久久精品免费观看| 国产裸体歌舞团一区二区| 久久伊99综合婷婷久久伊| 精品一区二区三区在线播放| 精品国产精品网麻豆系列| 国产精品资源在线看| 久久久久九九视频| 成人av手机在线观看| 国产精品久久久久久久久免费樱桃 | 日韩午夜在线播放| 久久机这里只有精品| 日韩欧美中文字幕精品| 国产一区中文字幕| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 成人av在线影院| 国产精品成人免费在线| 欧美综合天天夜夜久久| 亚洲sss视频在线视频| 在线综合+亚洲+欧美中文字幕| 日韩国产在线观看| 精品国免费一区二区三区| 国产成人精品影院| 国产精品理论片在线观看| 欧美在线观看一二区| 视频一区中文字幕国产| 久久综合色播五月| 99精品视频在线观看| 日韩av中文字幕一区二区| 精品欧美一区二区久久| av在线不卡电影| 视频在线观看一区| 国产精品三级视频| 欧美日韩国产精选| 丁香激情综合五月| 亚洲国产中文字幕在线视频综合| 日韩欧美一二三四区| 99免费精品视频| 久久精品国产免费| 亚洲精品视频自拍| 国产日产欧美一区二区视频| 欧美亚洲国产bt| 国产v综合v亚洲欧| 日韩精品成人一区二区在线| 国产精品无码永久免费888| 在线成人午夜影院| 国产成人午夜电影网| 美女视频黄 久久| 亚洲国产欧美一区二区三区丁香婷| 精品福利在线导航| 欧美日韩国产一区二区三区地区| 高清日韩电视剧大全免费| 欧美aⅴ一区二区三区视频| 亚洲欧美另类久久久精品| 久久综合色综合88| 日韩无一区二区| 在线观看国产一区二区| 成人黄色软件下载| 国产麻豆9l精品三级站| 久久97超碰国产精品超碰| 亚洲福利一区二区三区| 亚洲欧美电影院| 国产精品视频麻豆| 国产婷婷色一区二区三区| 精品国产网站在线观看| 5月丁香婷婷综合| 欧美日韩午夜影院| 欧美日韩1234| 欧美日韩精品专区| 欧美色图免费看| 欧美午夜精品一区二区三区| 日本乱人伦一区| 色综合久久久久综合| av一区二区三区四区| www.日韩大片| 91丨porny丨户外露出| av成人免费在线观看| 国产麻豆91精品| 成人网在线免费视频| 成人午夜电影久久影院| 国产成人精品一区二| 成人一区在线看| 成人毛片老司机大片| 色婷婷综合久久久中文字幕| 91福利精品视频| 欧美精品 国产精品| 日韩欧美中文字幕制服| 国产亚洲综合性久久久影院| 国产婷婷色一区二区三区在线| 亚洲国产精品99久久久久久久久| 中文av一区二区| 亚洲综合清纯丝袜自拍| 亚洲va欧美va人人爽| 久久国产尿小便嘘嘘尿| 国产高清一区日本| 成人在线视频首页| 欧洲人成人精品| 日韩一区二区三| 国产视频一区二区在线| 中文字幕欧美国产| 亚洲精品午夜久久久| 日本不卡的三区四区五区| 狠狠色综合日日| 91色.com| 精品三级在线观看| 国产精品久久久久天堂| 午夜国产精品一区| 国产精品自拍一区| 欧美色图天堂网| 国产欧美综合色| 亚洲国产成人高清精品| 国产成人啪午夜精品网站男同| 91美女在线观看| 精品日本一线二线三线不卡| 综合久久综合久久| 日韩福利视频导航| 97精品久久久久中文字幕| 日韩一区二区在线看| 亚洲免费av在线| 国产精品一卡二卡| 色综合久久精品|