精华内容
下载资源
问答
  • Grapher实现汉字输入的步骤.doc
  • Focusky(也称为“FS软件”)不仅可以画布插入文本文字,还可以插入的图形里加入文字。 以下是具体的操作步骤: 1.快捷工具栏点击“插入”—> “图形或者点击相应图标插入图形,如图1所示: 【图1...

    Focusky(也称为“FS软件”)不仅可以在画布中插入文本文字,还可以在插入的图形里加入文字。

    以下是具体的操作步骤:

    1.快捷工具栏点击“插入”—> “图形或者点击相应图标插入图形,如图1所示:
    在这里插入图片描述
    【图1▲ 插入图形】 (Focusky教程)

    2.插入图形后,在右侧的编辑工具中点击 “添加文本”图标,便可添加文字到图形中;
    在这里插入图片描述
    【图2▲ 添加文字到图形】 (Focusky教程)

    3.添加文字后便可自定义文字设置,字体,大小,颜色等。
    在这里插入图片描述
    【图3▲ 自定义文字设置】 (Focusky教程)

    展开全文
  • vc++图形验证码_判断输入的验证码文字是否与图片文字一致.zip
  • easyx 图形界面输入中文

    千次阅读 2020-04-12 07:58:07
    ***********百度贴吧抄的代码,用了部分c和c++,输入的数据保存string类型 #include <graphics.h> #include <conio.h> #include <windows.h> #include <string> #pragma comment(lib,...

    ***********百度贴吧抄的代码,用了部分c和c++,输入的数据保存在string类型中

    #include <graphics.h>
    #include <conio.h>
    #include <windows.h>
    #include <string>
    #pragma comment(lib,"Imm32.lib")
    
    using namespace std;
    void GetIMEString(HWND hWnd, string& str)
    {
    	HIMC hIMC = ImmGetContext(hWnd);//获取HIMC 
    	if (hIMC)
    	{
    		//这里先说明一下,以输入“中国”为例 
    		//切换到中文输入法后,输入“zhongguo”,这个字符串称作IME组成字符串 
    		//而在输入法列表中选择的字符串“中国”则称作IME结果字符串 
    		static bool flag = false;//输入完成标记:在输入中时,IME组成字符串不为空,置true;输入完成后,IME组成字符串为空,置false 
    		DWORD dwSize = ImmGetCompositionStringW(hIMC, GCS_COMPSTR, NULL, 0); //获取IME组成输入的字符串的长度 
    		if (dwSize > 0)//如果IME组成字符串不为空,且没有错误(此时dwSize为负值),则置输入完成标记为true 
    		{
    			if (flag == false)
    			{
    				flag = true;
    			}
    		}
    		else if (dwSize == 0 && flag) //如果IME组成字符串为空,并且标记为true,则获取IME结果字符串 
    		{
    			int iSize; //IME结果字符串的大小 
    			LPSTR pszMultiByte = NULL;//IME结果字符串指针 
    			int ChineseSimpleAcp = 936;//宽字节转换时中文的编码 
    			WCHAR* lpWideStr = NULL;//宽字节字符数组 
    			dwSize = ImmGetCompositionStringW(hIMC, GCS_RESULTSTR, NULL, 0);//获取IME结果字符串的大小 
    			if (dwSize > 0) //如果IME结果字符串不为空,且没有错误 
    			{
    				dwSize += sizeof(WCHAR);//大小要加上NULL结束符 
    				//为获取IME结果字符串分配空间 
    				if (lpWideStr)
    				{
    					delete[]lpWideStr;
    					lpWideStr = NULL;
    				}
    				lpWideStr = new WCHAR[dwSize];
    				memset(lpWideStr, 0, dwSize); //清空结果空间 
    				ImmGetCompositionStringW(hIMC, GCS_RESULTSTR, lpWideStr, dwSize);//获取IME结果字符串,这里获取的是宽字节 
    				iSize = WideCharToMultiByte(ChineseSimpleAcp, 0, lpWideStr, -1, NULL, 0, NULL, NULL);//计算将IME结果字符串转换为ASCII标准字节后的大小 
    				//为转换分配空间 
    				if (pszMultiByte)
    				{
    					delete[] pszMultiByte;
    					pszMultiByte = NULL;
    				}
    				pszMultiByte = new char[iSize + 1];
    				WideCharToMultiByte(ChineseSimpleAcp, 0, lpWideStr, -1, pszMultiByte, iSize, NULL, NULL);//宽字节转换 
    				pszMultiByte[iSize] = '\0';
    				str += pszMultiByte;//添加到string中 
    				//释放空间 
    				if (lpWideStr)
    				{
    					delete[]lpWideStr;
    					lpWideStr = NULL;
    				}
    				if (pszMultiByte)
    				{
    					delete[] pszMultiByte;
    					pszMultiByte = NULL;
    				}
    			}
    			flag = false;
    		}
    		ImmReleaseContext(hWnd, hIMC);//释放HIMC 
    	}
    }
    void main()
    {
    	initgraph(640, 480); // 创建绘图窗口 
    	HWND hWnd=GetHWnd();
    	BeginBatchDraw(); // 设置批绘图模式 
    	string str;
    	while (true)
    	{
    		if (_kbhit()) //如果是ASCII输入 
    		{
    			char c = _getch();
    			if (c == '\b')
    			{
    				if (str.length() > 0)
    				{
    					if (str.at(str.length() - 1) & 0x8000)
    						str.erase(str.end() - 1);
    					str.erase(str.end() - 1);
    				}
    			}
    			else if (c == 27) {}
    			else {
    				str += c;
    			}
    		}
    		else //除此之外,检测是否有IME输入,如果有,则将输入结果添加到string中 
    		{
    			GetIMEString(hWnd, str);
    		}
    		if (str.length() > 100)
    			str = "";
    		outtextxy(0, 0, str.c_str());
    		if (strcmp(str.c_str(), "司严豪最6") == 0)
    		{
    			str = "";
    		}
    		FlushBatchDraw();
    		// 延时
    		Sleep(15);
    		cleardevice();
    	}
    	closegraph();
    }
    
    展开全文
  • 网站进行登录时往往需要进行登录前的验证,有数字验证,有验证码验证,还有图形验证,这个是一个图形验证码,通过点击图片文字进行验证
  • 如今我们生活随处都可以拍摄各种各样的视频,有时候我们想把自己拍摄的视频加上一些字幕解说之类的文字应该如何做呢,今天卿卿教大家通过PR是如何添加字幕。PR 教程.jpg使用视频剪辑的时候,经常或遇到的给视频...

     如今我们生活中随处都可以拍摄各种各样的视频,有时候我们想把自己拍摄的视频加上一些字幕解说之类的文字应该如何做呢,今天卿卿教大家通过PR是如何添加字幕。

    7fcda6ed78f2ad9c2deb39ec30541acc.gif

    PR 教程.jpg

    66241bf82b1a5b3328072ca8c83eb6c1.png 9d47e17ef334549d69e7d78b9e59e568.png

    在使用视频剪辑的时候,经常或遇到的给视频添加字幕,2018版PR软件有一定的改动,下面来看看pr cc 2018怎样添加字幕。

    方法1.

    2ce80c8cc1dde4ccba345d243c61e3a0.png

     1

    首先,点击打开pr cc 2018软件,进入首页,点击新建项目。

    0444fef54fa93e4caa1d0141a89877f2.png 8ea841f38d70337ed41e8811d44af668.png 2ce80c8cc1dde4ccba345d243c61e3a0.png

     2

    在项目面板中点击右键,新建一个序列。

    adf3b86532ab043fba07ae81b4b8ffc8.png 8ea841f38d70337ed41e8811d44af668.png 2ce80c8cc1dde4ccba345d243c61e3a0.png

     3

    将新建的序列拖动到时间轴上,点击面板上的文字工具“T”,如图中所示。

    779bc0baf984a360164580f11de7955b.png 8ea841f38d70337ed41e8811d44af668.png 2ce80c8cc1dde4ccba345d243c61e3a0.png

     4

    在节目面板上合适位置单击,弹出文本框,在其中输入文字。

    35256558dc8865f9d32473adf8fe2ad0.png 8ea841f38d70337ed41e8811d44af668.png 2ce80c8cc1dde4ccba345d243c61e3a0.png

     5

    选择上方的图形面板,在基本图形面板中设置目前文字的一些相关属性。

    3867b65cc20c934a0ff281606e33949c.png 8ea841f38d70337ed41e8811d44af668.png 6e0e137cdbf02225871a310d493517c1.png

    方法2.

    2ce80c8cc1dde4ccba345d243c61e3a0.png

     1

    同样的是打开电脑上的软件,点击新建项目进入页面。

    0444fef54fa93e4caa1d0141a89877f2.png 8ea841f38d70337ed41e8811d44af668.png 2ce80c8cc1dde4ccba345d243c61e3a0.png

     2

    在编辑页面,点击文件 —— 新建 —— 字幕。

    05dcdd7f1677d47720862d708ee49d1a.png 8ea841f38d70337ed41e8811d44af668.png 2ce80c8cc1dde4ccba345d243c61e3a0.png

     3

    在弹出字幕界面,下拉箭头选择字幕标准及相关属性,然后点确定。

    7dff85633caf79630fa316afc65f8bbf.png 8ea841f38d70337ed41e8811d44af668.png 2ce80c8cc1dde4ccba345d243c61e3a0.png

     4

    在项目面板可以看到已经新建好一个字幕文件,输入文字,调整大小,还可以输入其他属性。

    2731e3be6b71f48adf56657b1d8f9ec1.png 8ea841f38d70337ed41e8811d44af668.png 2ce80c8cc1dde4ccba345d243c61e3a0.png

     5

    将字幕文件拖动到时间轴上,放到合适的位置,字幕新建成功。

    faed9cb3d462445083c2cb04a931c44c.png 8ea841f38d70337ed41e8811d44af668.png 7fcda6ed78f2ad9c2deb39ec30541acc.gif a2a6f17758d99a645febcbe105085d0b.png

    PR是一款多功能软件,在视频编辑等方面都有很大的作用,今天的这篇经验卿卿和大家聊了聊关于pr cc 2018软件字幕添加和修改的两种方法,希望可以帮助到大家,卿卿期待大家在视频大赛的表现哦~

    责编:学学

    美编:源源 博博 德德

    5543c08a7c7b7256ebbce9f280571adc.png

    扫码关注

    河北中医青年

    展开全文
  • //矩形区域R1内输入文字,水平居中,垂直居中,单行显示 drawtext("运行",&R2,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//矩形区域R2内输入文字,水平居中,垂直居中,单行显示 drawtext("退出",&R3,DT_...

    0.引言

    \qquad 看了CSDN上很多关于C程序图形化界面的介绍,有的代码繁琐难解,不方便调试修改;有的不够详细。本文提供的代码简单、易于移植、容易理解,望急需使用C语言制作图形化界面的朋友采纳。
    \qquad 对easyx尚不熟悉的朋友不需要担心,我敢打包票它只需10分钟就可以上手,而它为你节省的时间可能是3个小时甚至更多。关于easyx的简单应用请参考一篇我以前写的关于C程序可视化的博文。
    →【C语言实现动画控制】←
    \qquad 本文的讲解是循序渐进的,读者应该重点关注每个步骤的理解,两步之间代码的变化,即可完全理解本文。

    1.素材准备

    1. easyx的下载链接如下:(本文使用的版本是2014冬至版)
      https://www.easyx.cn/downloads/
      注:使用easyx需要注意它兼容的编译器(下载的帮助文件会写),不同的easyx兼容的编译器不同,但总是和visual C++6兼容(和字符编码有关),本文以visual C++6编译器为例书写代码。
    2. easyx的最新英文帮助文档链接(下载2014冬至版会自带中文帮助文档):
      https://docs.easyx.cn/en-us/intro
    3. 如果你成功下载了easyx2014冬至版,那么解压后把头文件(easyx.h和graphic.h)和lib文件(amd64)分别放在VC文件夹默认的include文件夹和lib文件夹中。右键你的VC程序,选择打开文件所在位置,然后找到MFC文件夹,友情提供两个文件夹的位置截图。
      include
      lib
    4. 建议编译的C文件以cpp后缀保存。

    2.编程

    2.1.创建你的界面

    \qquad 创建一个480×360的窗口,我们需要使用initgraph()函数,闲言少叙,让我们直接看一段代码:

    #include <graphics.h>              // 引用图形库头文件
    #include <conio.h>
    #include <stdio.h>
    #include <windows.h>				//用到了定时函数sleep()
    #include <math.h>
    
    int main()
    {
    	int i;
    	short win_width,win_height;//定义窗口的宽度和高度
    	win_width = 480;win_height = 360;
    	initgraph(win_width,win_height);//初始化窗口(黑屏)
    	for(i=0;i<256;i+=5)
    	{
    		setbkcolor(RGB(i,i,i));//设置背景色,原来默认黑色
    		cleardevice();//清屏(取决于背景色)
    		Sleep(15);//延时15ms
    	}
    	closegraph();//关闭绘图界面
    }
    
    

    \qquad 这段代码很容易理解,运行这段程序,就会出现逐渐明亮的屏幕。因为不断刷新背景色为 R G B ( i , i , i ) RGB(i,i,i) RGB(i,i,i)。C语言中的颜色使用十六进制表示的,RGB函数可以将0~255范围内的三个整数三原色转换成这个十六进制。
    \qquad cleardevice()函数用于清屏,是界面内所有元素都被清空,一般只会在初始化出现。
    \qquad Sleep()是毫秒级延迟,当然界面变亮时间不一定是准确的15ms×255/5=0.765s,因为其他语句还需要执行时间。
    \qquad closegraph():关闭绘图界面。注意,如果初始化了绘图界面但没有在主函数结束前关闭它,可能会引发一些莫名其妙的错误!所以这个函数一定要有!

    2.2.创建按钮

    \qquad 我们尝试在界面创建几个按钮,按钮需要的操作是绘制矩形和打印文字。虽然看着简单,但是里面还是有点学问,为了方便大家理解,还是先放上代码和注释。

    #include <graphics.h>              // 引用图形库头文件
    #include <conio.h>
    #include <stdio.h>
    #include <windows.h>				//用到了定时函数sleep()
    #include <math.h>
    int r1[]={30,20,130,60};//输入按钮的矩形参数
    int r2[]={170,20,220,60};//运行按钮的矩形参数
    int r3[]={260,20,310,60};//退出按钮的矩形参数
    int main()
    {
    	int i;
    	short win_width,win_height;//定义窗口的宽度和高度
    	win_width = 480;win_height = 360;
    	initgraph(win_width,win_height);//初始化窗口(黑屏)
    	for(i=0;i<256;i+=5)
    	{
    		setbkcolor(RGB(i,i,i));//设置背景色,原来默认黑色
    		cleardevice();//清屏(取决于背景色)
    		Sleep(15);//延时15ms
    	}
    	RECT R1={r1[0],r1[1],r1[2],r1[3]};//矩形指针R1
    	RECT R2={r2[0],r2[1],r2[2],r2[3]};//矩形指针R2
    	RECT R3={r3[0],r3[1],r3[2],r3[3]};//矩形指针R3
    	LOGFONT f;//字体样式指针
    	gettextstyle(&f);					//获取字体样式
    	_tcscpy(f.lfFaceName,_T("宋体"));	//设置字体为宋体
    	f.lfQuality = ANTIALIASED_QUALITY;    // 设置输出效果为抗锯齿  
    	settextstyle(&f);                     // 设置字体样式
    	settextcolor(BLACK);				//BLACK在graphic.h头文件里面被定义为黑色的颜色常量
    	drawtext("输入参数",&R1,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R1内输入文字,水平居中,垂直居中,单行显示
    	drawtext("运行",&R2,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R2内输入文字,水平居中,垂直居中,单行显示
    	drawtext("退出",&R3,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R3内输入文字,水平居中,垂直居中,单行显示
    	setlinecolor(BLACK);
    	rectangle(r1[0],r1[1],r1[2],r1[3]);
    	rectangle(r2[0],r2[1],r2[2],r2[3]);
    	rectangle(r3[0],r3[1],r3[2],r3[3]);
    	system("pause");//暂停,为了显示
    	closegraph();
    	return 0;
    }
    

    在这里插入图片描述
    \qquad 这里需要特别介绍的是矩形指针 p R e c t pRect pRect,它使用句柄RECT定义,并且不可以中途再次赋值。之所以要设置矩形指针了为了打印字体的时候以矩形为边界自动填充。它的格式是RECT r={X1,Y1,X2,Y2},X1和X2是矩形的左边和右边的横坐标,Y1和Y2是矩形的上边和下边的纵坐标,这一点和rectangle()绘制空心矩形函数参数排列一致。后面的DT_CENTER | DT_VCENTER | DT_SINGLELINE就是描述填充格式的常量。使用drawtext书写文字不需要再计算文字的坐标和设置大小,会方便很多。
    \qquad LOGFONT是字体样式指针,通过gettextstyle()函数来获取当前的字体类型,再通过settextstyle()函数加以设置。这里只修改了字体的名称和显示质量,还可以修改斜体、下划线等属性,更详细的部分请参考帮助文档。

    2.3.鼠标操作

    2.3.1.单击特效

    \qquad 作为一个图形化界面的C程序,鼠标操作总不能少吧。在讲解程序前先别着急,简单为大家科普一下鼠标事件:
    \qquad 鼠标是输入设备,只要发生以下的事件,就会暂存在鼠标消息列表中,我们的操作系统就会依次响应列表中的鼠标消息事件,常用的鼠标事件如下:

    • WM_MOUSEMOVE——鼠标移动
    • WM_MOUSEWHEEL——鼠标滚轮滚动
    • WM_LBUTTONDOWN——鼠标左键按下
    • WM_LBUTTONUP——鼠标左键弹起
    • WM_LBUTTONDBLCLK——鼠标左键双击
    • WM_RBUTTONDOWN——鼠标右键按下
    • WM_RBUTTONUP——鼠标右键弹起
    • WM_RBUTTONDBLCLK——鼠标左键双击
    • WM_MBUTTONDOWN——鼠标中键按下
    • WM_MBUTTONUP——鼠标中键弹起
    • WM_MBUTTONDBLCLK——鼠标中键双击
      \qquad 我们只需要根据不断获取鼠标消息队列的消息并根据消息依次进行响应即可。

    \qquad 相信大家已经迫不及待了,那么请看下面一个简单的程序。

    #include <graphics.h>              // 引用图形库头文件
    #include <conio.h>
    #include <stdio.h>
    #include <windows.h>				//用到了定时函数sleep()
    #include <math.h>
    int r1[]={30,20,130,60};//输入按钮的矩形参数
    int r2[]={170,20,220,60};//运行按钮的矩形参数
    int r3[]={260,20,310,60};//退出按钮的矩形参数
    int main()
    {
    	int i;
    	short win_width,win_height;//定义窗口的宽度和高度
    	win_width = 480;win_height = 360;
    	initgraph(win_width,win_height);//初始化窗口(黑屏)
    	for(i=0;i<256;i+=5)
    	{
    		setbkcolor(RGB(i,i,i));//设置背景色,原来默认黑色
    		cleardevice();//清屏(取决于背景色)
    		Sleep(15);//延时15ms
    	}
    	RECT R1={r1[0],r1[1],r1[2],r1[3]};//按钮1的矩形区域
    	RECT R2={r2[0],r2[1],r2[2],r2[3]};//按钮2的矩形区域
    	RECT R3={r3[0],r3[1],r3[2],r3[3]};//按钮2的矩形区域
    	LOGFONT f;
    	gettextstyle(&f);					//获取字体样式
    	_tcscpy(f.lfFaceName,_T("宋体"));	//设置字体为宋体
    	f.lfQuality = ANTIALIASED_QUALITY;    // 设置输出效果为抗锯齿  
    	settextstyle(&f);                     // 设置字体样式
    	settextcolor(BLACK);				//BLACK在graphic.h头文件里面被定义为黑色的颜色常量
    	drawtext("输入参数",&R1,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R1内输入文字,水平居中,垂直居中,单行显示
    	drawtext("运行",&R2,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R2内输入文字,水平居中,垂直居中,单行显示
    	drawtext("退出",&R3,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R3内输入文字,水平居中,垂直居中,单行显示
    	setlinecolor(BLACK);
    	rectangle(r1[0],r1[1],r1[2],r1[3]);
    	rectangle(r2[0],r2[1],r2[2],r2[3]);
    	rectangle(r3[0],r3[1],r3[2],r3[3]);
    	MOUSEMSG m;//鼠标指针
    	setrop2(R2_NOTXORPEN);//二元光栅——NOT(屏幕颜色 XOR 当前颜色)
    	while(true)
    	{
    		m = GetMouseMsg();//获取一条鼠标消息
    		if(m.uMsg==WM_LBUTTONDOWN)
    		{
    			for(i=0;i<=10;i++)
    			{
    				setlinecolor(RGB(25*i,25*i,25*i));//设置圆颜色
    				circle(m.x,m.y,2*i);
    				Sleep(25);//停顿2ms
    				circle(m.x,m.y,2*i);//抹去刚刚画的圆
    			}
    			FlushMouseMsgBuff();//清空鼠标消息缓存区
    		}
    	}
    	system("pause");//暂停,为了显示
    	closegraph();
    	return 0;
    }
    
    
    

    在这里插入图片描述
    \qquad 每点击鼠标以下,应该可以看到鼠标点击处有一个逐渐扩大并淡出的圆(截图无法清晰,在画面的中右侧),当循环体内Sleep的视觉大于20ms后视觉效果很强。
    \qquad 每响应一次鼠标左键单击事件,都会调用一次清空鼠标消息缓存区的函数FlushMouseMsgBuff(),如果没有这个函数会怎么样呢?如果我们快速连续地单击鼠标左键N次,那么特效就会播放N次,如果特效播放速度比单击的速度慢,那么即使你停下来了,程序仍然会接着播放单击特效,因为你的左键单击仍然在鼠标的消息队列m.uMsg中的鼠标消息没有响应完。
    \qquad 这里需要解释的是一个二元光栅设置函数setrop2(),二元光栅是混合背景色和当前颜色的模式。我们这里采用的方式是同或(NOT XOR)的方式,若底色为白色(1),则当前颜色不变;若底色是黑色(0),则当前颜色反色。为什么需要采用这种方式呢?因为我们在第二次抹去原来的圆的时候不能采用白色,否则如果背景色原来就为黑(比如按钮和文字),就也会被抹成白色。而背景色与任意一个颜色同或两次都为其本身,即可起到还原背景色的效果。这里的背景色与cleardevice()前面那个背景色不同,这里的是指执行这一条绘画指令之前屏幕上的颜色。

    2.3.2.光标感应

    \qquad 我们希望鼠标移到按钮上时按钮会有所变化,移开按钮时又会回到原样。这里我们采用一种简单的填充颜色的方法,就是按钮变色。我们需要解决一个问题就是按钮变色了但是按钮的文字不能被覆盖,那么我们还是需要使用到二元光栅。只是我们这次的模式改成了同或。
    \qquad 为了方便起见,存放三个按钮的数组我们合并为了一个二维数组,在鼠标事件中更容易使用和分配任务。

    #include <graphics.h>              // 引用图形库头文件
    #include <conio.h>
    #include <stdio.h>
    #include <windows.h>				//用到了定时函数sleep()
    #include <math.h>
    int r[3][4]={{30,20,130,60},{170,20,220,60},{260,20,310,60}};//三个按钮的二维数组
    
    int button_judge(int x,int y)
    {
    	if(x>r[0][0] && x<r[0][2] && y>r[0][1] && y<r[0][3])return 1;
    	if(x>r[1][0] && x<r[1][2] && y>r[1][1] && y<r[1][3])return 2;
    	if(x>r[2][0] && x<r[2][2] && y>r[2][1] && y<r[2][3])return 3;
    	return 0;
    }
    int main()
    {
    	int i,event=0;
    	short win_width,win_height;//定义窗口的宽度和高度
    	win_width = 480;win_height = 360;
    	initgraph(win_width,win_height);//初始化窗口(黑屏)
    	for(i=0;i<256;i+=5)
    	{
    		setbkcolor(RGB(i,i,i));//设置背景色,原来默认黑色
    		cleardevice();//清屏(取决于背景色)
    		Sleep(15);//延时15ms
    	}
    	RECT R1={r[0][0],r[0][1],r[0][2],r[0][3]};
    	RECT R2={r[1][0],r[1][1],r[1][2],r[1][3]};
    	RECT R3={r[2][0],r[2][1],r[2][2],r[2][3]};
    	LOGFONT f;
    	gettextstyle(&f);					//获取字体样式
    	_tcscpy(f.lfFaceName,_T("宋体"));	//设置字体为宋体
    	f.lfQuality = ANTIALIASED_QUALITY;    // 设置输出效果为抗锯齿  
    	settextstyle(&f);                     // 设置字体样式
    	settextcolor(BLACK);				//BLACK在graphic.h头文件里面被定义为黑色的颜色常量
    	drawtext("输入参数",&R1,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R1内输入文字,水平居中,垂直居中,单行显示
    	drawtext("运行",&R2,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R2内输入文字,水平居中,垂直居中,单行显示
    	drawtext("退出",&R3,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R3内输入文字,水平居中,垂直居中,单行显示
    	setlinecolor(BLACK);
    	rectangle(r[0][0],r[0][1],r[0][2],r[0][3]);
    	rectangle(r[1][0],r[1][1],r[1][2],r[1][3]);
    	rectangle(r[2][0],r[2][1],r[2][2],r[2][3]);
    	MOUSEMSG m;//鼠标指针
    	
    	while(true)
    	{
    		m = GetMouseMsg();//获取一条鼠标消息
    
    		switch(m.uMsg)
    		{
    			case WM_MOUSEMOVE:
    				setrop2(R2_XORPEN);
    				setlinecolor(LIGHTCYAN);//线条颜色为亮青色
    				setlinestyle(PS_SOLID, 3);//设置画线样式为实现,10磅
    				setfillcolor(WHITE);//填充颜色为白色
    				if(button_judge(m.x,m.y)!=0)
    				{
    					if(event != button_judge(m.x,m.y))
    					{
    						event = button_judge(m.x,m.y);//记录这一次触发的按钮
    						fillrectangle(r[event-1][0],r[event-1][1],r[event-1][2],r[event-1][3]);//有框填充矩形(X1,Y1,X2,Y2)
    					}
    				}
    				else
    				{
    					if(event != 0)//上次触发的按钮未被修正为原来的颜色
    					{
    						fillrectangle(r[event-1][0],r[event-1][1],r[event-1][2],r[event-1][3]);//两次同或为原来颜色
    						event = 0;
    					}
    				}
    				break;
    			case WM_LBUTTONDOWN:
    				setrop2(R2_NOTXORPEN);//二元光栅——NOT(屏幕颜色 XOR 当前颜色)
    				for(i=0;i<=10;i++)
    				{
    					setlinecolor(RGB(25*i,25*i,25*i));//设置圆颜色
    					circle(m.x,m.y,2*i);
    					Sleep(30);//停顿30ms
    					circle(m.x,m.y,2*i);//抹去刚刚画的圆
    				}
    				break;
    				FlushMouseMsgBuff();//清空鼠标消息缓存区
    		}
    	}
    	system("pause");//暂停,为了显示
    	return 0;
    }
    
    

    在这里插入图片描述
    \qquad 这里我们运用了两次设置二元光栅的函数setrop2,在鼠标的移动条件内(case MOUSEMOVE),我们使用的是屏幕颜色和当前颜色异或,这是为什么呢?因为fillrectangle()函数是画一个有框填充矩形,我们让这个有框填充矩形和原按钮的一样大。由于线条的颜色为亮青色,填充颜色为白色(1),白色的填充颜色和屏幕颜色异或,取的是屏幕颜色的反色。按钮的边框是黑色(0),它与亮青色异或,则会保留原来的亮青色。
    \qquad 与同或一样,异或两次等于没有执行操作,所以可以还原到原屏幕画布的颜色。

    2.3.3.进度条

    \qquad 既然涉及到进度条了,那么就应该涉及到正式程序了,这里我不想涉及太多的专业知识影响大家理解,但又不能让程序运行得太快以至于看不出进度条的变化,所以我设计了一个简单的弹性球轨迹作图程序。
    \qquad 假设球半径为R,初始高度为 h 0 h_0 h0,初速度为0(自由落体),非弹性碰撞时能量损失率为 α \alpha α。计算部分子函数如下:

    int simulation()
    {
    	float dt = 0.01;//仿真间隔10ms
    	long int N = (long int)(sim_t/dt);//迭代次数
    	float *h=(float*)calloc(N,sizeof(float));//高度
    	float *v=(float*)calloc(N,sizeof(float));//速度(竖直方向)
    	long int i;//迭代变量
    	for(i=1;i<N;i++)
    	{
    		if(h[i-1]>R)//未发生碰撞
    		{
    			v[i]=v[i-1]-9.8*dt;//速度计算
    		}
    		else//发生碰撞,动能损失alpha,速度损失alpha的开方
    		{
    			v[i]=-sqrt(alpha)*v[i-1];	
    		}
    	}
    	free(h);
    	free(v);//释放内存
    	return 0;
    }
    

    \qquad 当然,我们还需要绘图网格,定义绘图网格的函数如下:

    void init_figure()
    {
    	int i;
    	setrop2(R2_COPYPEN);//当前颜色
    	setlinecolor(BLACK);
    	setlinestyle(PS_SOLID);//实线
    	rectangle(30,100,420,330);//外框线
    	setlinestyle(PS_DOT);//点线
    	for(i=30+39;i<420;i+=39)
    	{
    		line(i,100,i,330);//竖直辅助线
    	}
    	for(i=100+23;i<330;i+=23)
    	{
    		line(30,i,420,i);//水平辅助线
    	}
    }
    

    \qquad 注意,我们使用了rectangle()空心矩形函数绘制网格外框架,使用了line函数依次画出了辅助线。

    \qquad 我们现在的目标就是将h的坐标转换到网格上去,绘制出球心的轨迹,这样似乎并不复杂,只需要对simulation()函数稍加修改即可。

    int simulation()
    {
    	float dt = 0.01;//仿真间隔10ms
    	float dy = 230/h0;//单位纵坐标
    	long int N = (long int)(sim_t/dt);//迭代次数
    	float *h=(float*)calloc(N,sizeof(float));//高度
    	float *v=(float*)calloc(N,sizeof(float));//速度(竖直方向)
    	long int i;//迭代变量
    	float process_duty;//进度
    	init_figure();//初始化图像网格
    	setrop2(R2_COPYPEN);//当前颜色
    	//计算步骤
    	h[0]=h0;v[0]=0;
    	for(i=1;i<N;i++)
    	{
    		if(h[i-1]>R)//未发生碰撞
    		{
    			v[i]=v[i-1]-9.8*dt;//速度计算
    		}
    		else//发生碰撞,动能损失alpha,速度损失alpha的开方
    		{
    			v[i]=-sqrt(alpha)*v[i-1];	
    		}
    		h[i]=h[i-1]+v[i]*dt;//高度计算
    		process_duty = (i+1)/(float)(N);
    		putpixel(30+(int)(process_duty*390),330-(int)(h[i]*dy),RED);//画点putpixel(X,Y,color*)
    		Sleep(dt*1000);//延时
    	}
    	free(h);
    	free(v);
    	return 0;
    }
    

    \qquad 这里的新函数putpixel(X,Y,color*)是画像素点的函数,适合刻画不连续或不规则的移动轨迹。
    \qquad 现在我们只剩下了刻画进度条的函数了,进度条的刷新很明显是应该放在for循环里面的,那么我们采用什么进度条的格式呢?进度条可以有圆形、扇形、长条连续型、长条不连续型等多种,我们这里采用的是环形进度条,将进度数字显示在环中心。请看以下的对simulation()函数改进的代码:

    //仿真运行
    int simulation()
    {
    	char t[3];//百分值的字符
    	char *out_text;//带百分号的百分字符
    	float dt = 0.01;//仿真间隔10ms
    	float dy = 230/h0;//单位纵坐标
    	long int N = (long int)(sim_t/dt);//迭代次数
    	float *h=(float*)calloc(N,sizeof(float));//高度
    	float *v=(float*)calloc(N,sizeof(float));//速度(竖直方向)
    	long int i;//迭代变量
    	float process_duty;//进度
    	RECT r={370,35,400,65};//百分值显示区域的矩形指针
    	init_figure();//初始化图像网格
    	setrop2(R2_COPYPEN);//当前颜色
    	setfillcolor(WHITE);
    	setlinecolor(WHITE);
    	fillrectangle(354,19,411,81);//覆盖原进度条区域
    	setlinestyle(PS_NULL);//无线条
    	setbkmode(TRANSPARENT);//设置文字填充背景为透明
    	//计算步骤
    	h[0]=h0;v[0]=0;
    	BeginBatchDraw();//开始缓存区
    	for(i=1;i<N;i++)
    	{
    		if(h[i-1]>R)//未发生碰撞
    		{
    			v[i]=v[i-1]-9.8*dt;//速度计算
    		}
    		else//发生碰撞,动能损失alpha,速度损失alpha的开方
    		{
    			v[i]=-sqrt(alpha)*v[i-1];	
    		}
    		setfillcolor(WHITE);
    		setlinecolor(WHITE);
    		fillrectangle(354,19,416,81);//覆盖原进度条区域
    		h[i]=h[i-1]+v[i]*dt;//高度计算
    		process_duty = (i+1)/(float)(N);
    		setlinestyle(PS_SOLID);
    		putpixel(30+(int)(process_duty*390),330-(int)(h[i]*dy),RED);
    		setfillcolor(BLUE);
    		setlinestyle(PS_NULL);
    		fillpie(355,20,415,80,0,process_duty*2*PI);
    		setfillcolor(WHITE);
    		fillcircle(385,50,20);
    		sprintf(t,"%d",(int)(process_duty*100.0));//整型转换为字符串
    		out_text = strcat(t,"%");//添加一个百分号
    		drawtext(out_text,&r,DT_CENTER | DT_VCENTER | DT_SINGLELINE);
    		Sleep(dt*1000);
    		FlushBatchDraw();//刷新缓存区
    	}
    	EndBatchDraw();//结束缓存区
    	free(h);
    	free(v);
    	return 0;
    }
    

    \qquad 这里我们需要多加载一个头文件<string.h>。
    \qquad 首先需要计算进度条的坐标,把环形进度条区域用白色矩形刷新掉,环形进度条需要一个扇形和圆形的组合,扇形的角度是0~360°。这里我们用到了fillpie(X1,Y1,X2,Y2,start_angle,end_angle),前四个参数为椭圆扇形的外接矩形坐标,后两个参数分别为起始角和终止角(弧度制)。每过一次迭代都重新计算终止角(起始角始终为0),即可起到扇形角度逐渐增长的效果,再用一个白色填充圆覆盖中心部分即可变成环形进度条。
    \qquad FlushBatchDraw()函数是刷新缓存区的函数,与BeginBatchDraw()EndBatchDraw()一起使用,如果我们绘图之后不想立即显示,而想批量绘图最后一起刷新画板,用缓存区的方法再合适不过了。

    3.完整代码及效果

    #include <graphics.h>              // 引用图形库头文件
    #include <conio.h>
    #include <stdio.h>
    #include <windows.h>				//用到了定时函数sleep()
    #include <math.h>
    #include <string.h>
    #define PI 3.1416
    int r[3][4]={{30,20,130,60},{170,20,220,60},{260,20,310,60}};//三个按钮的二维数组
    float alpha,R,h0,sim_t;//碰撞时的能量损失率,球的半径、初始高度、仿真时间
    //按钮判断函数
    int button_judge(int x,int y)
    {
    	if(x>r[0][0] && x<r[0][2] && y>r[0][1] && y<r[0][3])return 1;
    	if(x>r[1][0] && x<r[1][2] && y>r[1][1] && y<r[1][3])return 2;
    	if(x>r[2][0] && x<r[2][2] && y>r[2][1] && y<r[2][3])return 3;
    	return 0;
    }
    //初始化图像
    void init_figure()
    {
    	int i;
    	setrop2(R2_COPYPEN);//当前颜色
    	setlinecolor(BLACK);
    	setlinestyle(PS_SOLID);//实线
    	rectangle(30,100,420,330);//外框线
    	setlinestyle(PS_DOT);//点线
    	for(i=30+39;i<420;i+=39)
    	{
    		line(i,100,i,330);//竖直辅助线
    	}
    	for(i=100+23;i<330;i+=23)
    	{
    		line(30,i,420,i);//水平辅助线
    	}
    }
    //仿真运行
    int simulation()
    {
    	char t[3];//百分值的字符
    	char *out_text;
    	float dt = 0.01;//仿真间隔10ms
    	float dy = 230/h0;//单位纵坐标
    	long int N = (long int)(sim_t/dt);//迭代次数
    	float *h=(float*)calloc(N,sizeof(float));//高度
    	float *v=(float*)calloc(N,sizeof(float));//速度(竖直方向)
    	long int i;//迭代变量
    	float process_duty;//进度
    	RECT r={370,35,400,65};//百分值显示区域的矩形指针
    	init_figure();//初始化图像网格
    	setrop2(R2_COPYPEN);//当前颜色
    	setfillcolor(WHITE);
    	setlinecolor(WHITE);
    	fillrectangle(354,19,411,81);//覆盖原进度条区域
    	setlinestyle(PS_NULL);//无线条
    	setbkmode(TRANSPARENT);//设置文字填充背景为透明
    	//计算步骤
    	h[0]=h0;v[0]=0;
    	BeginBatchDraw();//开始缓存区
    	for(i=1;i<N;i++)
    	{
    		if(h[i-1]>R)//未发生碰撞
    		{
    			v[i]=v[i-1]-9.8*dt;//速度计算
    		}
    		else//发生碰撞,动能损失alpha,速度损失alpha的开方
    		{
    			v[i]=-sqrt(alpha)*v[i-1];	
    		}
    		setfillcolor(WHITE);
    		setlinecolor(WHITE);
    		fillrectangle(354,19,416,81);//覆盖原进度条区域
    		h[i]=h[i-1]+v[i]*dt;//高度计算
    		process_duty = (i+1)/(float)(N);
    		setlinestyle(PS_SOLID);
    		putpixel(30+(int)(process_duty*390),330-(int)(h[i]*dy),RED);
    		setfillcolor(BLUE);
    		setlinestyle(PS_NULL);
    		fillpie(355,20,415,80,0,process_duty*2*PI);
    		setfillcolor(WHITE);
    		fillcircle(385,50,20);
    		sprintf(t,"%d",(int)(process_duty*100.0));//整型转换为字符串
    		out_text = strcat(t,"%");//添加一个百分号
    		drawtext(out_text,&r,DT_CENTER | DT_VCENTER | DT_SINGLELINE);
    		Sleep(dt*1000);
    		FlushBatchDraw();//刷新缓存区
    	}
    	EndBatchDraw();//结束缓存区
    	free(h);
    	free(v);
    	return 0;
    }
    
    int main()
    {
    	int i,event=0;
    	char s[30];//输入字符串变量
    	short win_width,win_height;//定义窗口的宽度和高度
    	win_width = 480;win_height = 360;
    	initgraph(win_width,win_height);//初始化窗口(黑屏)
    	for(i=0;i<256;i+=5)
    	{
    		setbkcolor(RGB(i,i,i));//设置背景色,原来默认黑色
    		cleardevice();//清屏(取决于背景色)
    		Sleep(30);//延时30ms
    	}
    	RECT R1={r[0][0],r[0][1],r[0][2],r[0][3]};
    	RECT R2={r[1][0],r[1][1],r[1][2],r[1][3]};
    	RECT R3={r[2][0],r[2][1],r[2][2],r[2][3]};
    	LOGFONT f;//字体样式指针
    	gettextstyle(&f);					//获取字体样式
    	_tcscpy(f.lfFaceName,_T("宋体"));	//设置字体为宋体
    	f.lfQuality = ANTIALIASED_QUALITY;    // 设置输出效果为抗锯齿  
    	settextstyle(&f);                     // 设置字体样式
    	settextcolor(BLACK);				//BLACK在graphic.h头文件里面被定义为黑色的颜色常量
    	drawtext("输入参数",&R1,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R1内输入文字,水平居中,垂直居中,单行显示
    	drawtext("运行",&R2,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R2内输入文字,水平居中,垂直居中,单行显示
    	drawtext("退出",&R3,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R3内输入文字,水平居中,垂直居中,单行显示
    	setlinecolor(BLACK);
    	rectangle(r[0][0],r[0][1],r[0][2],r[0][3]);
    	rectangle(r[1][0],r[1][1],r[1][2],r[1][3]);
    	rectangle(r[2][0],r[2][1],r[2][2],r[2][3]);
    	MOUSEMSG m;//鼠标指针
    	
    	while(true)
    	{
    		m = GetMouseMsg();//获取一条鼠标消息
    
    		switch(m.uMsg)
    		{
    			case WM_MOUSEMOVE:
    				setrop2(R2_XORPEN);
    				setlinecolor(LIGHTCYAN);//线条颜色为亮青色
    				setlinestyle(PS_SOLID, 3);//设置画线样式为实现,10磅
    				setfillcolor(WHITE);//填充颜色为白色
    				if(button_judge(m.x,m.y)!=0)
    				{
    					if(event != button_judge(m.x,m.y))
    					{
    						event = button_judge(m.x,m.y);//记录这一次触发的按钮
    						fillrectangle(r[event-1][0],r[event-1][1],r[event-1][2],r[event-1][3]);//有框填充矩形(X1,Y1,X2,Y2)
    					}
    				}
    				else
    				{
    					if(event!=0)//上次触发的按钮未被修正为原来的颜色
    					{
    						fillrectangle(r[event-1][0],r[event-1][1],r[event-1][2],r[event-1][3]);//两次同或为原来颜色
    						event = 0;
    					}
    				}
    				break;
    			case WM_LBUTTONDOWN:
    				setrop2(R2_NOTXORPEN);//二元光栅——NOT(屏幕颜色 XOR 当前颜色)
    				for(i=0;i<=10;i++)
    				{
    					setlinecolor(RGB(25*i,25*i,25*i));//设置圆颜色
    					circle(m.x,m.y,2*i);
    					Sleep(20);//停顿30ms
    					circle(m.x,m.y,2*i);//抹去刚刚画的圆
    				}
    				//按照按钮判断左键单击后的操作
    				switch(button_judge(m.x,m.y))
    				{
    					//复原按钮原型
    					case 1:
    						InputBox(s,30,"请输入碰撞时的能量损失率、球的半径、初始高度、仿真时间");
    						sscanf(s,"%f%f%f%f",&alpha,&R,&h0,&sim_t);//将输入字符串依次扫描到全局变量里面
    						FlushMouseMsgBuffer();//单击事件后清空鼠标消息
    						break;
    					case 2:
    						simulation();//仿真运行
    						FlushMouseMsgBuffer();//单击事件后清空鼠标消息
    						break;
    					case 3:
    						closegraph();//关闭绘图环境
    						exit(0);//正常退出
    					default:
    						FlushMouseMsgBuffer();//单击事件后清空鼠标消息
    						//printf("\r\n(%d,%d)",m.x,m.y);//打印鼠标坐标,方便调试时确定区域
    						break;
    				}
    				break;
    		}
    	}
    	return 0;
    }
    
    

    在这里插入图片描述
    在这里插入图片描述
    希望本文对您有帮助,谢谢阅读。

    展开全文
  • 汉字显示原理,如何计算机显示汉字,如何生成点阵汉字
  • java的图形界面输入

    千次阅读 2016-11-15 14:49:15
    要实现图形界面就要调用javax.swing包中的类和方法; JOptionPane包只是其中之举例; 程序截图: 输入: 输出: package main; import javax.swing.*; public class Main{ public static void main(String []...
  • 原文:http://coolketang.com/staticOffice/5a97f34f9f545442015d39ed.html1. 本节课将为您演示,如何插入图形,并在图形中输入计算公式。首先通过公式获得成绩表总分最高的学生姓名。点击选择J3单元格。 2. ...
  • 系统采用4×4接口键盘、LCM240128图形液晶模块以及存储器等实现T9中文输入法,可以进行汉字、英文、数字符号等文本信息的输入。该中文输入系统可广泛地应用于各类电子设备的研发,具有较高实用价值。  引言  ...
  • 输入任意一个大写字母,生成金字塔图形 def GoldTa(input): L = [chr(i) for i in range(65, 91)] # 大写字母A--Z idA = 65 # 从A开始 # ord()函数将字母转换为Unicode数值 idInput = ord(input) num = idInput...
  • 虚拟机Ubuntu Linux如何在图形界面和文字界面切换 (小白记录自己的操作) 从图形界面切换到文字界面 Linux系统有6个终端,可以通过ctrl+alt+f(n)进入相应的文字界面。 (n=0-6 代表f1\f2\f3\f4\f5\f6) 从文字...
  • Ubuntu中在tty终端显示和输入汉字

    万次阅读 2013-07-30 11:17:44
    Ubuntu中在tty终端显示和输入汉字 --使用fbterm&yong输入法 题记:仅以此文祭奠我死去的一天 软硬件环境:Ubuntu12.04 LTS, lenovo Z460 缘起: Ubuntu中默认可以打开7个tty终端,其中第7个tty终端启动了xorg的图形界面...
  • 我们能输入文字,但是我们输入的文字正确吗?能实现我们理想的效果吗?笔者就实践对文字输入的一些经验提出来供大家探讨。 一、AutoCAD R14软件的“文字样式” AutoCAD R14软件输入的文字均有一个文字的样式名...
  • 编程实现,图形用户界面如图所示,第一个文本框中输入数据,点击计算,第二个文本框输出计算结果。点击清除按钮,清除文本框内容。![图片说明]...
  • C语言的键盘输入和屏幕输出

    千次阅读 2019-06-10 10:14:29
    C程序的键盘输入和屏幕输出都是通过调用输入/输出函数实现的。本章介绍常用的输入/输出函数。 一、单个字符的输入/输出 1.字符常量 C语言的字符常量是用单引号括起来的一个字符。例如,‘a’是字符常量,而a则是...
  • CentOS 7输入startx无法启动图形化界面

    万次阅读 2019-03-07 11:20:26
    前两天学习linux虚拟化的时候, 发现虚拟机磁盘空间不足, 由于当初分区的时候不是用lvm来分区的, 导致无法扩容, 所以只能新建了一台虚拟机来学习. 然而新建完成后, 按照之前老师教的一系列优化手段, 将这台手段...
  • UEFI提供了HII(Human Interface Infrastructure)用来处理图形界面的文字显示,这一块我一直没有去仔细研究。到目前为止,显示汉字和字符,我都没有采用这种方法。 比如之前博客演示了测试样卡的界面,图形中用...
  • 字段明明指定为varchar 长度设置也没问题,一输入中文保存就报错? 其实问题一般是建表时没留意字符集的设置,sql-yog就默认把字符集设置成latin了,而且指定为varchar类型的字段也设置为latin 有人改了表的字符集...
  • C++语言图形编程

    千次阅读 2019-11-15 20:33:04
    今天偶然看到了C++语言图形编程,觉得非常有意思就想记录下来,以后多多研究了。 (1)首先需要将“graphics.h“头文件和“graphics.lib“库文件配置到VS2019。...接下来我们还要添加C++图形库,这个网站:h...
  • 刚开始研究linux系统,首次安装好centos7.6.1810 进入桌面,发现网上说的centos操作界面的右上角没有输入法可以选择,只能输入英文。 小编第一步是研究使用搜狗输入法,然后按照网上的教材安装,一不小心让系统的...
  • python matplotlib 图形中添加中文

    千次阅读 2018-10-10 10:21:44
    Python ,matplotlib绘图无法显示中文的问题 matplotlib 无法显示中文,主要原因是没有中文字体库,可以如下添加中文注释 import matplotlib.pyplot as plt # 添加中文字体 import matplotlib as mpl mpl.rcParams...
  • AutoLisp实现通过选择文字图形字体进行更改 问题的提出 每次接到一个AutoCad文件,总会遇到文件字体与自己系统里的文字字体不匹配的情况,导致每次都会通过字体设置对话框对不匹配的字体文件一通设置...
  • Mark:这里没有使用Entry对象的text属性,因为单行文本框text的值是不显示的。Entry对象的text属性不能设置Entry文本,文本的值是一个StringVar()对象,下面的属性会用到。 Entry对象属性 Entry对象方法 ...
  • CentOS7如何输入中文?

    万次阅读 多人点赞 2017-03-11 19:17:55
    可是大家安装过程可能会跳过选择中文输入法哦。本文就此问题,教大家如何捡回遗漏的中文输入法。第一步:开启CentOS7图形界面,应该是按Ctrl+Alt+F1~F3吧。选择桌面左上角的应用程序–>系统工具–>设置。 ...
  • 配置向导是集成编辑器通过图形控制来配置汇编语言、C/C++或初始化文件的应用程序。文件必须以特定方式书写来调用配置向导,并且必须文件的前100行包含以下声明。 <<< Use Configuration Wizard in...
  • bbp_C++图形/文字识别

    2018-08-16 19:05:03
    网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能。
  • 使用Protel99 se软件画PCB的朋友们应该都注意到了,直接Protel99 se是无法...有2个方法可以实现PCB文件添加汉字。 方法一:也是最笨的方法,直接用画线的方法画出汉字。当然,这种方法画出的汉字没有那么整齐...
  • JAVA简单图形界面的创建

    千次阅读 2018-09-25 14:34:11
    java提供了两套图形界面类:AWT组件和SWING组件。 AWT组件jdk1.0的时候就推出的图形界面类,它是位于java.awt包下的类。当时开发AWT组件时,采用C和C++的语言,并且还调用了操作系统底层的函数来实现AWT组件,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 101,464
精华内容 40,585
关键字:

在图形中输入文字