9099|8

693

帖子

7

TA的资源

版主

楼主
 

一学就会:用VC6.0编写自己的上位机 [复制链接]

 
本帖最后由 bqgup 于 2018-9-9 00:26 编辑

大家先看一下完成后的上位机,我只是写了一个比较简单的,后面复杂的还请各位大佬自己开发
1、首先下载这个软件,C语言编程软件,非常经典的软件。
没有软件的请自己找安装包下载,下载好软件之后,在你电脑上你喜欢的盘建一个文件夹用来盛放自己的上位机软件文件,我把文件夹建在了桌面上,命名为“bqgup上位机”。
2、打开软件,File->New->Projects->MFC AppWizard[exe]






3




点击上图的Insert Activex


4View->Class Wizard->












此时点击确定即可







然后往这两个函数中分别添加代码
OnInitDialog函数代码
  1. OnInitDialog函数代码[/align]BOOL CCcomDlg::OnInitDialog()
  2. {
  3.         CDialog::OnInitDialog();
  4.         //Add "About..." menu item to system menu.
  5.         //IDM_ABOUTBOX must be in the system command range.
  6.         ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  7.         ASSERT(IDM_ABOUTBOX < 0xF000);
  8.         CMenu* pSysMenu = GetSystemMenu(FALSE);
  9.         if(pSysMenu != NULL)
  10.         {
  11.                 Cstring strAboutMenu;
  12.                 strAboutMenu.LoadString(IDS_ABOUTBOX);
  13.                 if(!strAboutMenu.IsEmpty())
  14.                 {
  15.                         pSysMenu->AppendMenu(MF_SEPARATOR);
  16.                         pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX.strAboutMenu);
  17.                 }
  18.         }
  19.         // Set the icon for this dialog.  The framework does this automatically
  20.         //  when the application's main window is not a dialog
  21.         SetIcon(m_hIcon, TRUE);                        // Set big icon
  22.         SetIcon(m_hIcon, FALSE);                // Set small icon
  23.         
  24.         // TODO: Add extra initialization here
  25.         
  26.         if(m_ctrlComm.GetPortOpen())
  27.                
  28.                 m_ctrlComm.SetPortOpen(FALSE);

  29.         m_ctrlComm.SetCommPort(10);

  30.         if(!m_ctrlComm.GetPortOpen())

  31.                 m_ctrlComm.SetPortOpen(TRUE);

  32.         else

  33.                 AfxMessageBox("cannot open serial port");

  34.         m_ctrlComm.SetSettings("9600,n,8,1");

  35.         m_ctrlComm.SetInputMode(1);

  36.         m_ctrlComm.SetRThreshold(1);

  37.         m_ctrlComm.SetInputLen(0);

  38.         m_ctrlComm.GetInput();
  39.         return TRUE;  // return TRUE  unless you set the focus to a control
  40. }
复制代码

OnOnCommMscomm1()函数代码
  1. OnOnCommMscomm1()函数代码
  2. void CCcomDlg::OnOnCommMscomm1()
  3. {
  4.         // TODO: Add your control notification handler code here

  5.         m_strRXData = " ";

  6.         VARIANT variant_inp;

  7.         COleSafeArray safearray_inp;

  8.         LONG len,k;

  9.         BYTE rxdata[2048];

  10.         CString strtemp;

  11.         if(m_ctrlComm.GetCommEvent() == 2)
  12.         {
  13.                 variant_inp = m_ctrlComm.GetInput();

  14.                 safearray_inp = variant_inp;

  15.                 len = safearray_inp.GetOneDimSize();

  16.                 for(k = 0; k < len; k++)
  17.                 {
  18.                         BYTE bt = *(char*)(rxdata + k);

  19.                         strtemp.Format("%c",bt);

  20.                         m_strRXData += strtemp;
  21.                 }
  22.         }

  23.         UpdateData(FALSE);
  24.         
  25. }
复制代码



此帖出自创意市集论坛

最新回复

本帖最后由 damiaa 于 2022-11-24 15:36 编辑 楼主 搞VC6 编写太累了。 用C#或者QT吧。 实在想搞C++就用最新的VS2022.   详情 回复 发表于 2022-11-24 15:35

赞赏

1

查看全部赞赏

点赞(1) 关注(11)
 
 

回复
举报

30

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
先收藏下,找時間學習設定
此帖出自创意市集论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
好教程,谢谢分享!
此帖出自创意市集论坛
 
 
 

回复

105

帖子

0

TA的资源

纯净的硅(中级)

4
 
不错,初学者的福音。感谢分享!
此帖出自创意市集论坛
个人签名大道至简
 
 
 

回复

65

帖子

5

TA的资源

一粒金砂(中级)

5
 
感谢分享!
此帖出自创意市集论坛
 
 
 

回复

2942

帖子

4

TA的资源

五彩晶圆(中级)

6
 

使用控件的方式,这种方式效率不高哦!

此帖出自创意市集论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(中级)

7
 

确实很简单

此帖出自创意市集论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

8
 

很详细,可以学习一下。

此帖出自创意市集论坛
 
 
 

回复

6107

帖子

4

TA的资源

版主

9
 
本帖最后由 damiaa 于 2022-11-24 15:36 编辑

楼主 搞VC6 编写太累了。 用C#或者QT吧。

实在想搞C++就用最新的VS2022.

此帖出自创意市集论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表