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

📄 message.c

📁 LINUX下POS收银系统,可以对货物及工作人员进行管理.近本实现增删改查的功能
💻 C
字号:
#include "message.h"

/*
char *str="马勒戈壁的草泥马正在吃卧草。马勒戈壁的草泥马正在吃卧草。卧草,卧草,卧草泥马!泥马。泥马,泥马卧草。草泥马快乐的吃卧草,卧草快乐的被草泥马吃!";

int main()
{
	initscr();
	if(has_colors==FALSE)
	{
		endwin();
		exit(0);
	}
	start_color();
	WINDOW *window=subwin(stdscr,25,80,0,0);
	messagebox(window,7,19,44,12,COLOR_BLUE,YORNORC,str);
	endwin();
	return 0;
}
*/


int messagebox(WINDOW *father,int startX,int startY,int lenght,int height,int choice,char *str)
{

	WINDOW * win=derwin(father,height,lenght,startX,startY);
	WINDOW * shadow=derwin(father,height,lenght,startX+1,startY+1);
	scr_dump("scanm.dat");//屏幕保存
	int i=0,result=0,sign=1;
	/*
	init_pair(1,COLOR_BLACK,COLOR_RED);
	init_pair(2,COLOR_WHITE,shadowColor);
	init_pair(3,COLOR_BLACK,COLOR_BLACK);
	init_pair(4,COLOR_BLACK,COLOR_YELLOW);
	*/
	wbkgd(shadow,COLOR_PAIR(3));
	touchwin(father);
	wrefresh(father);
	wbkgd(win,COLOR_PAIR(1));
	box(win,0,0);
	mvwprintw(win,0,17,"注");
	mvwprintw(win,0,25,"意");
	touchwin(father);
	wrefresh(father);
	printmessage(win,40,str,2,2);
	switch(choice)
	{
		BUTTON *b1;
		BUTTON *b2;
		BUTTON *b3;
		case PAUSE:
			b1=createButton(startX+height/2,startY+lenght/2-3,3,8,"确定");
			b1->setColor(b1,1,3,4);
			b1->show(b1);
			b1->pitch_on(b1);
			b1->attack(b1,0,0,0);
			b1->setColor(b1,1,3,4);
			b1->free(&b1);
			break;
		case YORN:
			b1=createButton(startX+height/2,startY+lenght/2-8,3,8,"确定");
			b1->setColor(b1,1,3,4);
			b1->show(b1);
			b2=createButton(startX+height/2,startY+lenght/2+2,3,8,"取消");
			b2->setColor(b2,1,3,4);
			b2->show(b2);
			do
			{
				switch (sign)
				{
				case 1:
					b1->pitch_on(b1);
					sign=b1->attack(b1,2,2,2);
					b1->setColor(b1,1,3,4);
					if(sign == 0)
					{
						result=1;
					}
					break;
				case 2:
					b2->pitch_on(b2);
					sign=b2->attack(b2,1,1,1);
					b2->setColor(b2,1,3,4);
					if(sign == 0)
					{
						result=0;
					}
					break;
				}
			}
			while (sign);
			break;
		case YORNORC:
		b1=createButton(startX+height/2,startY+lenght/2-14,3,8,"是的");
			b1->setColor(b1,1,3,4);
			b1->show(b1);
			b2=createButton(startX+height/2,startY+lenght/2-4,3,8,"不用");
			b2->setColor(b2,1,3,4);
			b2->show(b2);
			b3=createButton(startX+height/2,startY+lenght/2+6,3,8,"取消");
			b3->setColor(b3,1,3,4);
			b3->show(b3);
			do
			{
				switch (sign)
				{
				case 1:
					b1->pitch_on(b1);
					sign=b1->attack(b1,3,2,2);
					b1->setColor(b1,1,3,4);
					if(sign == 0)
					{
						result=1;
					}
					break;
				case 2:
					b2->pitch_on(b2);
					sign=b2->attack(b2,1,3,3);
					b2->setColor(b2,1,3,4);
					if(sign == 0)
					{
						result=0;
					}
					break;
				case 3:
					b3->pitch_on(b3);
					sign=b3->attack(b3,2,1,1);
					b3->setColor(b3,1,3,4);
					if(sign == 0)
					{
						result=2;
					}
					break;
				}
			}
			while (sign);
			break;
	}
	/*
	attroff(COLOR_PAIR(1));
	attroff(COLOR_PAIR(2));
	attroff(COLOR_PAIR(3));*/
	scr_restore("scanm.dat");//屏幕恢复
	return result;
}

void printmessage(WINDOW *window,int maxprintlen,char *str,int startX,int startY)
{
	int high=0,len=0,i=0,j=0;
	len=strlen(str);
	if(len<=maxprintlen)
	{
		mvwprintw(window,startX,startY+(maxprintlen-len)/2,"%s",str);
	}else
	{
		if(len%maxprintlen==0)
		{
			high=len/maxprintlen;
		}else
		{
			high=len/maxprintlen+1;
		}
		for(i=0;i<high;i++)
		{
			for(j=0;j<maxprintlen;j++)
			{
				if(i==high-1)
				{
					mvwprintw(window,startX+i,startY+(maxprintlen-(len-i*maxprintlen))/2+j,"%s",(str+i*maxprintlen+j));
					break;
				}else
				{
					mvwprintw(window,startX+i,startY+j,"%c",*(str+i*maxprintlen+j));
				}
			}
		}
	}
	touchwin(window);
	wrefresh(window);
}



⌨️ 快捷键说明

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