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

📄 q_button.cpp

📁 QCurses全部代码 QCurses全部代码
💻 CPP
字号:
#include    "qcurses/Q_Button.hpp"/*######################################### 函数功能:析构函数                     ## 返 回 值:NULL                         ## 函数参数:NULL                         #########################################*/Q_Button::~Q_Button(){	delete [] Text;}//------------------------------------------------------------------------------------------/*######################################### 函数功能:构造函数                     ## 返 回 值:NULL                         ## 函数参数:WINDOW   *vMainWin  主窗口   ##           int      vWidth     宽度     ##           int      vYBegin    起始y    ##           int      vXBegin    起始x    ##           int      vCFront    文字颜色 ##           int      vCBack     背景色   #########################################*/Q_Button::Q_Button(WINDOW  *vMainWin,int  vWidth,int  vYBegin,int  vXBegin,int  vCFront,int  vCBack):Q_Object(vMainWin,  1,  vWidth,  vYBegin,  vXBegin,   false,  vCFront,  vCBack){	mvwaddch(MainWin,_beginy,_beginx-1,'[');	mvwaddch(MainWin,_beginy,_beginx+WorkWin->_maxx+1,']');	wrefresh(MainWin);	mvwaddstr(WorkWin,0,WorkWin->_maxx/2-strlen("按钮")/2,"按钮");	wrefresh(WorkWin);	Value = false;	Text = new char[90];}//------------------------------------------------------------------------------------------/*######################################### 函数功能:设置显示                     ## 返 回 值:NULL                         ## 函数参数:char    *format 字符格式     ##                   ...     具体字符串   #########################################*/void      Q_Button::Set(const  char   *format,...){	//赋值	va_list  ap;	va_start (ap,format);	if(vsprintf(Text,format,ap)<0)		strcpy(Text,"TooLong");	va_end(ap);	mvwaddstr(WorkWin,0,WorkWin->_maxx/2-strlen(Text)/2,Text);	wrefresh(WorkWin);}//------------------------------------------------------------------------------------------/*######################################### 函数功能:控件取值                     ## 返 回 值:最后键盘输入                 ## 函数参数:NULL                         #########################################*/int       Q_Button::Get(){	int   CH=0;	wattron(WorkWin,A_REVERSE);	mvwprintw(WorkWin,0,0,"                                                              ");	mvwaddstr(WorkWin,0,WorkWin->_maxx/2-strlen(Text)/2,Text);	while ((CH = wgetch(WorkWin))!=10)	{		if (CH == 9 || CH == KEY_UP || CH == KEY_DOWN || CH == KEY_LEFT || CH == KEY_RIGHT)		{			wattroff(WorkWin,A_REVERSE);			mvwprintw(WorkWin,0,0,"                                                              ");			mvwaddstr(WorkWin,0,WorkWin->_maxx/2-strlen(Text)/2,Text);			wrefresh(WorkWin);			Value = false;			return(CH);		}	}	wattroff(WorkWin,A_REVERSE);	mvwprintw(WorkWin,0,0,"                                                              ");	mvwaddstr(WorkWin,0,WorkWin->_maxx/2-strlen(Text)/2,Text);	wrefresh(WorkWin);	Value = true;	return(CH);}//------------------------------------------------------------------------------------------/*######################################### 函数功能:激活对象                     ## 返 回 值:返回的是最后的键盘值         ## 函数参数:Own 当前控件指针             #########################################*/int      Q_Button::Action(void *Own){	Get();	if (Value && OnClick)		OnClick(Own);	if (OnExit)		OnExit(Own);	return(NowKey);}//------------------------------------------------------------------------------------------

⌨️ 快捷键说明

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