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

📄 mradio.cpp

📁 飞虹 vision仿windows开发
💻 CPP
字号:
#include"\sunshine\include\mradio.h"
#include"\sunshine\include\app.h"
#include"\sunshine\include\define.h"
#include<alloc.h>
#include<string.h>
MRadio::MRadio(int x,int y,char *rtext,char *tname,char *groupname,int check)
 : MObj(x,y,0,0,groupname)
  {
	 firstrun=1;
	 CK=check;
	 name=new char[strlen(tname)+1];
	 text=new char[strlen(rtext)+1];
	 strcpy(name,tname);
    strcpy(text,rtext);
	 M=MApp::Application;
	 w(Length(text)+20);
	 h(16);
  }
MRadio::MRadio(int x,int y,char *rtext,char *tname,
	  char *groupname,MWindowObj &awin,int check)
 : MObj(x,y,0,0,groupname)
 {
	 firstrun=1;
	 CK=check;
	 name=new char[strlen(tname)+1];
	 text=new char[strlen(rtext)+1];
	 strcpy(name,tname);
	 strcpy(text,rtext);
	 M=&awin;
	 w(Length(text)+20);
	 h(16);
 }
MRadio::~MRadio()
 {
  delete text;
  delete name;
 }
void MRadio::UnFocus()
 {
	Mouse am(1);
	UnChecked();
	Write(text,x()+20,y(),BLACK);
 }
void MRadio::GetFocus()
 {
  Mouse am(1);
  if(CK)
	Checked();
  else
	UnChecked();
 }
void MRadio::Checked()
 {
	int X=x(),Y=y();
	setcolor(BLUE);
	line(X+3,Y+3,X+13,Y+13);
	line(X+3,Y+4,X+13,Y+13);
	line(X+3,Y+13,X+13,Y+3);
 }
void MRadio::UnChecked()
 {
	int X=x(),Y=y();
	setfillstyle(SOLID_FILL,LIGHTGRAY);
	bar(X,Y,X+15,Y+15);
	setcolor(WHITE);
	line(X,Y,X+15,Y);
	line(X,Y,X,Y+15);
	setcolor(DARKGRAY);
	line(X+15,Y+1,X+15,Y+15);
	line(X,Y+15,X+15,Y+15);
 }
int MRadio::Process()
 {
  Mouse am;
  if(firstrun)
	{
	 UnFocus();
	 if(CK) Checked();
	 firstrun=0;return 1;
	}
  if(Mes==CLEARCHECK) {Mes=0;CK=0;GetFocus();return 1;}
  if(!am.lp()) return 1;
  if(am.x()<x()||am.y()<y()||am.x()>(x()+w()-1)||
	  am.y()>(y()+h())) return 1;
  while(am.lp()) am.Reset();
  if(CK) return 1; //has been checked
  CK=1;
  GetFocus();
  ClearOther();
  return F();
 }
void MRadio::ClearOther()
 {
	 int num=M->GetNumber();
	 for(int i=0;i<num;i++)
	  {
		MObj &aobj=M->GetObj(i);
		if(!strcmp(aobj.Nameof(),"mradio"))
		  if(!strcmp(((MRadio&)aobj).GetId(),GetId()))
			if(strcmp(((MRadio&)aobj).GetName(),GetName())&&
			 ((MRadio&)aobj).GetCheck())
			  {
				aobj.TransMes(CLEARCHECK);
				return ;
			  }

	  }
	 return ;
 }

⌨️ 快捷键说明

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