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

📄 step12.cpp

📁 飞虹 vision仿windows开发
💻 CPP
字号:
//Copyright 1994-1997飞虹软件工作室
//本程序演示如何产生多文本窗口
#include"..\include\app.h"
#include"..\include\mapp.h"
#include"..\include\mbutton.h"
#include"..\include\mok.h"
#include"..\include\mtext.h"
#include"..\include\mdocwin.h"
#include"..\include\mclient.h" //客户窗头文件
#include<stdlib.h>
#include<string.h>
ifstream MApp::HZ("\\SUNSHINE\\hz.fon",ios::binary); //汉字库
MApp * MApp::Application; //应用标志,上2行必须定义!
class myMButton : public MButton
 {
	public:
	 myMButton(int x,int y,int w,int h,char *text,char *idname,char *sta)
	  : MButton(x,y,w,h,text,idname,sta){}
	 virtual int F();  //重载F函数,当按钮按下时激活此函数
 };
main()
 {
  MApp myapp; //产生一个应用
  myapp.Paint("多文本界面");
  myapp.Add(*new myMButton(30,50,150,60,"产生文本窗","B1",
				"此按钮将在屏幕上产生一个标准的窗口"));
	MClient &myclient=* new MClient(); //用默认位置与标志,此为默认的客户窗
	myapp.Add(myclient);
  return myapp.Process();
 }
int myMButton::F()
 {
  //在下面的代码中,请注意如何用管理器GetObj函数得到指定构件
  //,注意程序是如何进行类型转换的,这一点很重要,它是实现各
  //构件通讯的基础
	static int sx=70,sy=100;
	int sw=370,sh=180;
	static int i=0;
	char *topic=new char[10];
	char *c=new char[3];
	topic[0]='D';topic[1]='\0';c[0]='\0';
	sx+=30;sy+=30;
	if(sx+sw-1>getmaxx()||sy+sh-1>getmaxy()) return 1;
	i++;
	if(((MClient&)(MApp::Application->GetObj("MCLIENT"))).GetWindowNum()<=0)
	 {
	  sx=70;sy=100;i=0;
	 }
	itoa(i,c,10);strcat(topic,c);
	MWindow &mywindow=* new MWindow(sx,sy,sw,sh,"",topic);
	//参数1,2,3,4:位置,参数5:标志,参数6:标题条文本
	mywindow.Add(*new MText(sx+10,sy+30,"T1",
		  "对话框,多文本窗,应用都由类MWindowObj派生\n"
		  "来,都属于构件管理器,文本窗很类似对话框,但\n"
		  "文本窗激活时并不独占消息,别的部件仍可运行,\n"
		  "文本窗的位置只限于客户窗内,客户窗管理文本窗\n"
		  "的一切动作,如切换,删除等,客户窗在屏幕上是不\n"
		  "可见的\n"));

	mywindow.Add(*new MOk(sx+100,sy+sh-50,160,40));
	//用Add将构件加到窗口中去
	((MClient&)(MApp::Application->GetObj("MCLIENT"/*默认客户标志*/))).Add(mywindow);
	//再将窗口加到客户窗
	return 1;
 }

⌨️ 快捷键说明

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