VC界面编程入门
Visual Studio代码编写基础操作及界面介绍

Visual Studio代码编写基础操作及界面介绍一、Visual Studio代码编写基础操作Visual Studio是一款集成开发环境(IDE),可以用于编写各种类型的应用程序代码。
本文将介绍几个Visual Studio代码编写的基础操作,帮助读者快速上手使用。
1. 创建新项目在Visual Studio中,我们首先需要创建一个新项目。
打开Visual Studio后,点击“文件”(File)菜单,选择“新建”(New),然后选择“项目”(Project)。
在弹出的对话框中,选择合适的编程语言和应用程序类型,然后点击“确定”(OK)按钮即可创建新项目。
2. 添加新文件在项目创建完成后,我们可以开始编写代码。
点击“项目”资源管理器中的项目名称,右键点击,选择“添加”(Add),然后选择“新建项”(New Item)。
在弹出的对话框中,选择合适的文件类型并设置文件名称,然后点击“添加”(Add)按钮即可添加新文件。
3. 编写代码在Visual Studio中,我们可以在新建的代码文件中编写所需的代码。
在代码编辑器中,可以使用语法高亮、自动补全等功能帮助我们编写代码。
根据需要,可以使用合适的编程语言和相应的语法规则进行编写。
4. 调试代码在编写代码的过程中,我们可能需要调试代码以排查错误或找出逻辑问题。
Visual Studio提供了强大的调试功能。
在运行代码时,可以设置断点,然后使用调试工具逐行查看代码执行过程和变量值的变化,以便快速定位问题。
5. 编译和运行代码完成代码编写后,我们需要进行编译和运行。
点击“生成”(Build)菜单,选择“生成解决方案”(Build Solution)可以编译整个项目。
如果只需要编译当前文件,可以点击工具栏上的“生成”按钮。
编译完成后,可以点击“调试”(Debug)菜单中的“开始执行”(Start Debugging)或者“开始无调试”(Start Without Debugging)来运行代码。
VC精华教程MFC入门系列

第一章一个简单的MFC程序该文章为学习了C和C++以及有SDK编程基础的,但还未学习MFC的人员使用,我们开始使用一个基本的内容开始全部的代码如下:你只需将以上代码拷贝下来,在VC++6.0编译器,建一个Window32工程,使用MFC链接库编译即可。
具体步骤:打开VC++6.0,点击主菜单File(文件)-〉New(新建)弹出一个对话框,我们选择win32 Application(win32应用程序),在工程文本框给它起一个名字MyMFC,点击确定。
在确认信息的对话框里选择空工程an empty project点确定。
这样我们就建了一个win32应用程序这样一个类型的工程。
下面我们在这个工程里建一个C++文件。
点击菜单File(文件)-〉New(新建)弹出一个对话框,选择C++ source文件(C++源文件),在文件文本框里给它起个名字MyMFC,点击确定,这时我们将上面的代码拷入,编译链接。
你会发现有3个错误。
nafxcwd.lib(thrdcore.obj):error LNK2001:unresolved external symbol_endthreadexnafxcwd.lib(thrdcore.obj):error LNK2001:unresolved external symbol_beginthreadexDebug/MyMFC.exe:fatal error LNK1120:2 unresolved externals那么,这是因为没有使用MFC类库。
我们现在导入,点击菜单(project)工程-〉setting设置,弹出一个对话框,有一个下拉列表框,里面是Not Using MFC,我们把她改为Using MFC in a Static Library,点击确定,再编译,运行,那么有这样一个窗体出现。
下面是该程序的解释。
在以上的程序中,只使用了两个类CFrameWnd和CWinApp,我们先看第一个类:第一个类sample继承了CFrameWnd类,CFrame类是MFC类库中的一个类,用它来代表窗体框架,我们先用sample类继承它,在构造函数调用了Create这个函数,在运行Create这个函数时调用的是CFrameWnd类中的函数,是MFC写好的函数,CFrameWnd中封装了CreateWindow这个API函数为它的成员函数Create(),它们的参数都是相似的。
第一章 Visual C++ 6.0 程序设计快速入门

第1章Visual C++ 6.0程序设计快速入门Visual C++ 6.0(以下简称VC 6.0)是一个功能强大、对Windows程序进行可视化开发的编程开发环境,是一个相当优秀的集成开发环境(Integrated Developing Environment,IDE)。
它集代码编辑、调试、向导、编译和可视化资源编辑等功能于一体,所提供的MFC 基本类库对Windows API函数做了很好的封装,简化了程序人员的开发过程。
本章简单介绍VC 6.0的开发环境,并演示如何通过MFC应用程序创建向导创建应用程序。
1.1 Visual C++ 6.0开发环境简介VC 6.0集成开发环境的主窗口由标题栏、菜单栏、工具栏、工作区、客户区、输出窗口和状态栏等组成。
主界面如图1.1所示。
`图1.1 VC 6.0集成开发环境标题栏:用于显示应用程序名和当前打开的文件名。
工作区:用于显示当前打开工程的有关信息,包括工程的类、资源以及文件组成等内容。
客户区:用于文本编辑器、资源编辑器等进行文件和资源的编辑。
输出窗口:用于输出编译信息、调试信息和一些查询结果信息等。
状态栏:用于显示菜单栏、工具栏等的简单说明信息以及文本编辑器中当前光标所在的行列号等。
用户可以通过鼠标拖动,将菜单栏、工具栏、工作区、客户区和输出窗口等随意更换第1章 Visual C++ 6.0 程序设计快速入门·3·位置,也可以隐藏其中的某些窗口。
1.2 创建Visual C++ 6.0应用程序本节主要演示如何通过应用程序创建向导创建应用程序,也对MFC 应用程序创建向导可以创建的3种应用程序类型进行了简单的对比。
实例001 创建第一个C++应用程序【实例介绍】 本例通过空项目创建一个普通的C++程序,这个创建过程很重要,对于以后的很多例子,都是基于这种创建方法,也是学习C++语言理论进行实验的基本前提。
【开发过程】(1)创建一个新工作区,单击【文件】-》【新建】菜单,弹出下图所示对话框图1-1 新建工作区对话框在【Workspace name:】标签下的文本框中输入对应的工作区名称(这里输入的是:Chapter1)。
VC++MFC基础教程

dcb.Parity=NOPARITY; //无奇偶校验位 dcb.StopBits=TWOSTOPBITS; //两个停止位 SetCommState(hCom,&dcb);
m_cComm.put_OutBufferSize(512); //设置输出缓冲区 m_cComm.put_Settings(TEXT("9600,n,8,1"));//波特率,无校验,个数
据位,个停止位
if(!m_cComm.get_PortOpen())
{
m_cComm.put_PortOpen(TRUE); //打开串口
B)修改控件属性
修改上面的示例编辑框属性: ID——IDC_EDIT_RECV;
Multiline——True; Want Return——True; Vertical Scroll——True; Auto VScroll——True;
修改下面的示例编辑框属性: ID——IDC_EDIT_SEND; Multiline——True; Vertical Scroll——True;
1.3、API 串口编程
按照步骤一新建 Serial 工程,这里不赘述了。
A)添加 API 串口初始化代码
1、在 SerialDlg.cpp 文件中添加全局变量:
HANDLE hCom; //全局变量,串口句柄 // CSerialDlg 对话框
2、在 SerialDlg.cpp 文件中的 OnInitDialog()函数添加如下代码:
AfxMessageBox("写串口失败!"); }
C语言图形界面的编程

C语⾔图形界⾯的编程1.编写图形程序时⽤致电的⼀些图形库函数抣在graphics.lib中,扏⾏这些函数时,所需的有关信息(如宏定义等)则包含在graphics.h头⽂件中。
2.我们⽇常在电视屏幕上显⽰的画⾯,其实均由⼀些圆点组成(其亮度,顔⾊不同),这些点称为像素(或像点),它们是组成图形的最⼩单位。
3。
插在PC机插槽中的图形卡(即适配器),其作⽤就是将要显⽰的字符和图形以数字形式存储在上的显⽰存储器(VRAM)中,再将其变成视频模拟信号送往相应适配的显⽰器机配有的显⽰器种类不同,因⽽适配器种类不同4,VGA:视频图形阵列适器:VGA是⽬前流⾏的PC机显⽰标准,它⽀持CGA,EGA的所有显⽰⽅式,但⾃已还有640*480像素的16⾊显⽰⽅式, 640*350像素的中分辨率显⽰⽅式和640*200像素的低分辨显⽰⽅式,它们均有16种显⽰顏⾊可供选择。
5.CVGA:是国内研制的带有显⽰汉字功能的VGA图形适配器,带有汉字字库,该适配器提供了和CGA,EGA,VGA全兼容的⼯作⽅式,还担供了在⽂本⼯作⽅式下的⾼分辨率图形显⽰功能。
6.显⽰器有两种⼯作⽅式,即⽂本显⽰和图形显⽰。
它们的区别是显⽰存储器中的存储的信息不同。
字符⽅式时, VRAM存放要显⽰字符的ASCII 码,⽤它作为,取出字符发⽣器ROM中存放的相应字符的图像(⼜称字模),变成视频信号在显⽰器上进⾏显⽰;⽽当选择图形⽅式时,则要显⽰的图形的图像直接存在VRAM中中,VRAM中某单元存放的数就表⽰了相应屏莫上某⾏和某列上的像素及顔⾊7.对EGA显⽰器,调⾊板即16个调⾊板寄存器是⼀个顔⾊索引表,它存有16种顔⾊,VRAM中的每个像素值(是4位)实际代表⼀个顔⾊索引号该值即上述函有选举权的参数index可知道选中哪个调⾊板寄存器,⽽每个调⾊板寄存器为6位,故可⽤6位⼆进制数表⽰⼀个顔⾊,因⽽可有64种顔⾊供选择。
该顔⾊值即是上述参数octual_color,8.对于VGA显⽰器,也只有⼀个调⾊板,对应16个调⾊板寄存器。
VC MFC基础入门PPT课件

7
在CMy_ResView::CMy_ResView()中初始化成员变量: m_nColors[0] = RGB(255,0,0); m_nColors[1] = RGB(0,255,0); m_nColors[2] = RGB(0,0,255); m_nColorIndex = 0; m_strShow = "Hello World!"; m_bShow = TRUE;
10
在My_ResView.cpp文件中,读者会看到ID_OPER_SHOW
对应的COMMAND消息的绑定,代码如下 :
BEGIN_MESSAGE_MAP(CMy_ResView, CView)
//{{AFX_MSG_MAP(CMy_ResView)
ON_COMMAND(ID_OPER_SHOW, OnOperShow)
void CMy_ResView::OnOperShow()
{m_bShow = !m_bShow;
Invalidate(); // 强制程序重新窗口
}
重新编译运行程 序,可看到“显 示”菜单项工作
正常
11
(2) UPDATE_COMMAND_UI消息的响应
UPDATE_COMMAND_UI消息是在窗口将要绘制菜单项的时
第10章 在MFC中创建应 用程序的资源
1
10.1 VC++程序中的资源
资源
位图 光标
对话框
字符串
第14讲 VC++6.0编程入门共42页

一个MFC应用程序有且只有一个从WinApp类派生的全 局应用程序对象,此对象在运行时控制应用程序中所 有其他对象的活动。
28.05.2020
4
消息就是操作系统通知应用程序某件事情已经发生的 一种方式。
消息处理是windows应用程序的核心。 采用消息驱动的程序工作流程如图1所示。
28.05.2020
图1
5
(2)消息的种类
在windows系统中,大约有近千种消息。 消息大致可以分为3类: (a)标准的widows消息 键盘消息、鼠标消息、窗口消息。 (b)控件消息 从控件传给系统的消息(BN_CLICK),由系统发送给
使用MFC,可以大大简化Windows编程工作。目前,绝大部分 的Windows应用程序都是基于MFC编写。
MFC中的类可分为两种:CObject类的派生类和非CObject派生类。 CObject是大多数MFC类的最终基类,它支持串行化数据和获得
一个类的运行时信息。
28.05.2020
8
2.MFC编程
在MFC程序中,消息映射的宏为: BEGIN_MESSAGE_MAP:用于声明消息映射的开始。 END_MESSAGE_MAP:用于声明消息映射的结束。
28.05.2020
7
2.MFC编程
Microsoft提供了一个基础类库MFC(Microsoft Foundation Class),其中包含用来开发C++应用程序和Windows应用程 序的一组类。MFC封装了大部分的Windows的API (Appliction Programming Interface,应用程序接口)。
Visual C++MFC入门教程(经典版)

Visual C++MFC入门教程(经典版)visual-c++mfc入门教程(经典版)木有页眉visualc++mfc入门教程目录+--第一章vc入门|------1.1如何学好vc|------1.2认知windows消息机制|------1.3利用visualc++/mfc开发windows程序的优势|------1.4利用mfc进行开发的通用方法介绍|------1.5mfc中常用类,宏,函数介绍+--第二章图形输出|------2.1和gui有关的各种对象|------2.2在窗口中输入文字|------2.3使用点,刷子,笔进行绘图|------2.4在窗口中绘制设备有关图形,图标,设备毫无关系图形|------2.5采用各种态射方式|------2.6多边形和剪贴区域+--第三章文档视结构|------3.1文档视图框架窗口间的关系和消息传送规律|------3.2接收用户输入|------3.3使用菜单|------3.4文档,视,框架之间相互作用|------3.5利用序列化展开文件读取|------3.6mfc中所提供更多的各种视类了解+--第四章窗口控件|------4.1button|------4.2staticbox|------4.3editbox|------4.4scrollbar|------4.d利用appwizard创建并使用toolbarstatusbardialogbar|------4.egeneralwindow|------4.f关于wm_notify的采用方法+--第五章对话框|------5.1使用资源编辑器编辑对话框|------5.2创建有模式对话框|------5.3创建无模式对话框|------5.4在对话框中展开消息态射|------5.5在对话框中进行数据交换和数据检查1木有页眉|------5.6采用属性对话框|------5.7采用通用型对话框|------5.8建立以对话框为基础的应用|------5.9使用对话框作为子窗口+--第六章网络通信开发|------6.1winsock介绍|------6.2利用winsock展开并无相连接的通信+------6.3利用winsock创建存有相连接的通信《visualc++开发指南》闻怡洋/文第一章vc入门1.1如何努力学习vc这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起到更好的效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//bShow=FALSE, 隐藏按钮;bShow=TRUE,显示按钮
4. 串口通信
❖ 串口通信在嵌入式系统的界面编程中占有着 重要的地位。在WIN32中所有的设备都被看 成是文件,串行口也不例外。
框架类,搜寻和销售用户命令。
❖ CDocument
文档类,装载、维护文档。
❖ CView
视图类,视图显示。
选择建立基于对话框的应用程序
基于文档的 应用程序不 适合界面使 用。因为界 面一般不需 要文档背景。 仅有CxxApp 和CxxDlg两 个类。
下一步选项
关于DLL的选项
❖ SharedDLL
初始化ImageList
//创建真彩图集,ILC_COLOR32:32位色 m_ImageList.Create(32,32,ILC_COLOR32,6,4); //载入图标 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
…… m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON6)); //设置为工具条图集 m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList
6. 表格
❖ 表格是界面常用的控件之一,以文本框结合可以实 现表格的编辑功能。
❖ 在对话框添加表格控件MSFlexGrid,设置控件ID后 右击控件,在属性框设置字体。
❖ 添加CMSFlexGrid类,设置表格对应的成员变量名 称。
❖ 文本框不必在对话框上预置控件,可定义指针后在 对话框初始化函数直接生成。
❖ 显示工具条
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW _CONTROLBAR_LAST,0);
载入不同的工具条
❖ 由多个对话框构成的界面中,工具条按钮在 每个对话框都是可见的。因为每个对话框都 可能载入这个工具条。
❖ 同一个对话框可能需要在不同的条件下分别 载入不同的工具条。
小巧的exe文件。
❖ Statically linked lib
exe文件较大, 可直接运行。
建立的对话框
基于MFC的程序
❖ VC已经搭建了程序的框架,无需加入任何代 码就可以直接编译运行。
❖ 和常规C语言不同,main/winmain函数已经 封装,只需要在程序中加入自己的响应函数。
1. 如何退出程序
如何替换工具条
❖ 定义
CToolBar m_ToolBar; CToolBar m_ToolBar2;
❖ 备用工具条初始化 m_ToolBar2.Create(this); m_ToolBar2.LoadToolBar(IDR_TOOLBAR_WAVE); RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_
初始化工具条
❖ 在对话框类的头文件定义一个工具条
CToolBar m_tool; //假定工具条ID为IDR_TOOLBAR1
❖ 在初始化函数中
m_tool.Create(this);//创建工具条 m_tool.LoadToolBar(IDR_TOOLBAR1);//载入资源 RepositionBars(AFX_IDW_CONTROLBAR_FIRST ,AFX_IDW_CONTROLBAR_LAST,0);//显示工具条
m_MsComm1.SetOutput(COleVariant(Tx));//发送数据 }
5. 控件简介
❖ 常用控件
包括静态文本、文本框、按钮、列表框
❖ 创建方式
静态创建: 在对话框模板创建控件,并设置属性 动态创建是指预先定义一个控件类的对象,再在程序中创建 控件。
❖ 常用函数
创建控件CreateWindow/CreateWindowEx 显示/隐藏控件ShowWindow(SW_SHOWSW_HIDE); 激活/禁用控件EnableWindow(true/false)
//不存在则m_hCom = INVALID_HANDLE_VALUE
CloseHandle(m_hCom);
CMSCOMM控件初始化
m_MsComm1.SetCommPort(1); m_MsComm1.SetSettings("19200,n,8,1"); m_MsComm1.SetInputMode(1); m_MsComm1.SetRThreshold(36); m_MsComm1.SetInputLen(36);//每次读36字节 m_MsComm1.SetPortOpen(true);//打开串口
UpdateData(TRUE); pWnd->nStart=m_Start;
标准控件——进度条
CProgressCtrl* Progress= (CProgressCtrl*) GetDlgItem(IDC_RX);//指针指向进度条 CenterWindow(this);//窗口居中 SetWindowText("波形数据接收窗口"); Progress->SetRange(0,100);//设置范围 Progress->SetStep(1);//设置最小递增刻度 Progress->SetPos(0);//设置初始位置
❖ 设置窗口顶部文本SetWindowText ❖ 窗口大小、风格及位置SetWindowPos ❖ 窗口图标AfxGetApp()->LoadIcon
3. 工具条
❖ Insert→Resource(或Ctrl+R) ❖ 选择toolbar ❖ 点击new按钮 ❖ 添加按钮,逐个修改按钮图案,设置按钮ID。
);
真彩工具条的实现(2)
❖ 设置工具条按钮文本
m_ToolBar.SetButtonText(0,"系统图");
❖ 设置工具条按钮大小
CSize TextButtonSize,ImageSize; ImageSize.cx=32; ImageSize.cy=32; m_ToolBar.SetSizes(TextButtonSize,ImageSize);
❖ 串口通信编程方法大概可以分成三种
a. CMSCOMM控件。简单可靠。 b. WINAPI函数。难度最高,要求要掌握很多的API 函数。 c. 网络流行的一些串口通讯控件,比如CSerial类, 自建消息映射,对初学者来说难度较大。
判断串口是否存在
HANDLE m_hCom; m_hCom = CreateFile({"COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL| FILE_FLAG_OVERLAPPED, NULL);
IDW_CONTROLBAR_LAST,0); m_ToolBar2.ShowWindow(SW_HIDE);//隐藏备用工具条
如何替换工具条(续)
❖ 替换工具条
m_ToolBar.ShowWindow(SW_HIDE); m_ToolBar2.ShowWindow(SW_SHOW);
❖ 隐藏工具条按钮
array_input.GetElement(&i, &rxData[0][i]); } DataProcess(0); //数据处理 }
串口发送
SendOrder(BYTE Byte1, BYTE Byte2, BYTE Byte3, BYTE Byte4)
{ CByteArray Tx;
Tx.SetSize(8);//输出字节数组大小 Tx.SetAt(0,0xab);//设置数组元素 …… Tx.SetAt(7,Byte4); if (bCommExist)//如果串口存在 { m_MsComm1.SetInBufferCount(0);//清空接收缓冲
❖ DestroyWindow() 在子窗口退出会报故障并退出程序。
❖ EndDialog(IDOK)/EndDialog(IDCANCEL) 内置的响应对话框的确定/取消的函数。
❖ exit(0) 故障退出函数。
2. 窗口的部分设置
❖ 在OnInitDialog函数添加工具条初始化代码。 主窗口已启用此函数,子窗口需要类模板 (ctrl+w或View →ClassWizard →CxxDlg的消 息里面选择WM_INITDIALOG,再添加函数)
edit=new CEdit; edit->Create(WS_CHILD,CRect(0,0,0,0),&m_FlexGrid,IDC_EDIT); //edit 为头文件定义的文本框指针,必须作为表格的子窗口生成
表格初始化
CMSFlexGrid *para;//指向表格的指针 para=(CMSFlexGrid*)GetDlgItem(IDC_SETTING_ PARA);//根据ID获得表格地址,强制转为表格指针 para->ShowWindow(SW_SHOW);//显示表格 para->SetCols(4);//设置表格列数 para->SetRows(3);//设置表格行数 para->SetTextArray(0,“PID参数”);//设置表格内容 …… para->MoveWindow(70,100,407,97);//表格大小、 位置
常规工具条的缺陷
❖ 使用VC自带的资源模板建立的常规工具条只 支持16色(如Word的工具条),即使载入了 真彩图标也会转为16色显示。
真彩工具条的使用