向控制台中添加按钮事.ppt_第1页
向控制台中添加按钮事.ppt_第2页
向控制台中添加按钮事.ppt_第3页
向控制台中添加按钮事.ppt_第4页
向控制台中添加按钮事.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 向控制台中添加按钮事件,第一部分 频率调节,操作步骤:,1、打开任务二所完成的工程 2、打开IDD_REC_DIALOG控制台 3、向控制台中添加用来实现频率调节的按钮事件 4、向recDlg.cpp和recDlg.h中添加源程序 5、编译 6、运行 7、讲解,步骤三:向控制台中添加用来实现频率调节的控件,1、向“property”group box中添加事件“Static Text” 操作:A、属性“Caption”:Static改为Wireless Frequency B、属性“Align Text”:Left改为Center 2、向“property”group box中添加事件“Slider Control” 操作:A、属性“Auto Ticks”:False改为True B、属性“ID”:IDC_SLIDER1改为 IDC_SLIDER_FREQ,补充:Slider Control控件,含义:表示滑块控件,也称跟踪条。 作用:滑块控件是一个包含一个滑块和可选刻度线的窗口,当用户使用鼠标或者箭头键移动滑块时,滑块控件发送通知消息以指示此更改。,3、向“property”group box中添加事件“Edit Control” 操作:A、属性“Read Only”:False改为True B、属性“ID”:IDC_EDIT3改为IDC_EDIT_FREQ 如图3-1所示,图3-1,步骤四:向recDlg.cpp和recDlg.h中添加源程序 一、在recDlg.cpp中添加源程序,1、在recDlg.cpp中的第13行添加 protected: virtual void DoDataExchange(CDataExchange* pDX); protected: DECLARE_MESSAGE_MAP() 2、添加函数1 void CAboutDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); ,3、在2下面添加程序 BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() 4、在函数CrecDlg:CrecDlg(CWnd* pParent ) : CDialog(CrecDlg:IDD, pParent)后添加 , m_EditFreq(0) 5、在4下面添加函数 void CrecDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_FREQ, m_EditFreq); DDX_Control(pDX, IDC_SLIDER_FREQ, m_SlideFreq); ,6、在5下面添加函数 BOOL CrecDlg:OnInitDialog() CDialog:OnInitDialog(); LoadSettings(); return TRUE; 7、在6下面添加函数 void CrecDlg:LoadSettings(void) CWinApp *pApp=AfxGetApp(); int freq=pApp-GetProfileInt(_T(“DRC_MANAGER_V11“), _T(“FREQUENCY“) , 14); m_SlideFreq.SetRange(0,25); m_SlideFreq.SetPos(freq); m_EditFreq= 2400+m_SlideFreq.GetPos()*5; UpdateData(FALSE); ,8、在7下添加函数 void CrecDlg:SaveSettings(void) CWinApp *pApp=AfxGetApp(); pApp-WriteProfileInt(_T(“DRC_MANAGER_V11“), _T(“FREQUENCY“) , m_SlideFreq.GetPos(); 9、在8下添加函数 void CrecDlg:OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) m_EditFreq= 2400+m_SlideFreq.GetPos()*5; SaveSettings(); UpdateData(FALSE); Invalidate(FALSE); CDialog:OnHScroll(nSBCode, nPos, pScrollBar); ,二、向recDlg.h中添加源程序,1、打开recDlg.h文件 2、在程序的第12行添加 void LoadSettings(void); 3、在2的后面添加 void SaveSettings(void); 4、在enum IDD = IDD_REC_DIALOG ;的下面添加 protected: virtual void DoDataExchange(CDataExchange* pDX);,5、接着添加 protected: virtual BOOL OnInitDialog(); 6、在5下面添加 DECLARE_MESSAGE_MAP() 7、在6下面添加 public: int m_EditFreq; 8、在7下面添加 CSliderCtrl m_SlideFreq;,9、在8下面添加 afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);,步骤五:编译 步骤六:运行,第二部分 连接蓝牙,操作步骤:,1、打开任务三完成的工程 2、添加控件 3、添加源代码并讲解 4、编译 5、运行 6、验收,步骤二:添加控件,一、向“Property”group box中添加事件:“Static Text” 操作:A、属性“Caption”:Static改为 Port Number B、属性“Align Text”:Left改为Center,二.向“Property”group box中添加事件:“Combo box” 操作:A、属性“Data”:COM1;COM2; COM3;COM4;COM5;COM6;COM7; 三.向“Property”group box中添加控件“Button” 操作:A、属性“Caption”:Button1改为 CONNECT (Bluetooth) B、属性“ID”:IDC_BUTTON改为 IDC_BUTTON_COM 如图3-2所示,图3-2,三、编译程序 四、运行程序,步骤三:添加源代码并讲解,一、双击Combo Box控件进入到redDlg.cpp文件中 1、在recDlg.cpp中添加源代码: m_nSettingPort=m_ctrCOMBO_COM.GetCurSel(); SaveSettings(); 2、在recDlg.h中添加源程序 int m_nSettingPort; (18行),CComboBox m_ctrCOMBO_COM;(31行) 3、编译程序 4、运行程序,二、在recDlg.cpp中添加源程序 1、在函数 void CrecDlg:DoDataExchange (CDataExchange* pDX)中添加 DDX_Control(pDX, IDC_COMBO1, m_ctrCOMBO_COM); 2、在函数BOOL CrecDlg:OnInitDialog()中添加 BT_Ack_Flag=0; gMFTimer=0;gMFTimerFlag=0;gTimer=0; headAngle=0;,三、向recDlg.h中添加源程序(19行) int headAngle; unsigned long gTimer; int gMFTimer; int gMFTimerFlag; int BT_Ack_Flag; 四、编译程序 五、运行程序,六、在recDlg.cpp中添加源程序,1、在函数void CrecDlg:LoadSettings(void)中添加 m_nSettingPort = pApp-GetProfileInt (_T(“DRC_MANAGER_V11“), _T(“COMPORTNUM“) , 0); m_ctrCOMBO_COM.SetCurSel(m_nSettingPort); 2、在函数void CrecDlg:SaveSettings(void)中添加 pApp-WriteProfileInt (_T(“DRC_MANAGER_V11“), _T(“COMPORTNUM“) , m_nSettingPort);,3、编译程序 4、运行程序,七、双击控件CONNECT (Bluetooth) 进入到recDlg.cpp文件中,1、在函数void CrecDlg:OnBnClickedButtonCom()中添加 CString str; if(m_OpenSatus=false) m_nSettingPort=m_ctrCOMBO_COM.GetCurSel(); str.Format(_T(“COM%d“), m_nSettingPort+1); if( !m_CommPort.OpenPort( str, CBR_4800,m_nSettingPort ), str.Format(_T(“COM%d open fail rn Please check port“), m_nSettingPort+1); AfxMessageBox(str); GetDlgItem(IDC_BUTTON_COM)-SetWindowText(_T(“CONNECT (Blurtooth)“); GetDlgItem(IDC_BUTTON_MOTION)-EnableWindow(FALSE); m_OpenSatus=false; ,else str.Format(_T(“COM%d open ok“), m_nSettingPort+1); GetDlgItem(IDC_BUTTON_COM)-SetWindowText(_T(“DISCONNECT (Blurtooth)“); GetDlgItem(IDC_BUTTON_MOTION)-EnableWindow(TRUE); m_OpenSatus=true; SendHead2BT(70); ,else str.Format(_T(“COM%d“), m_nSettingPort+1); m_CommPort.ClosePort(); GetDlgItem(IDC_BUTTON_COM)-SetWindowText(_T(“CONNECT (Blurtooth)“); GetDlgItem(IDC_BUTTON_MOTION)-EnableWindow(FALSE); m_OpenSatus=false; BT_Ack_Flag=0; SaveSettings(); hCommWnd = m_hWnd;,2、添加新函数 void CrecDlg:SendHead2BT(BYTE command) int i; DWORD nCount =2; for( i=1; iMAX_SEND; i+ ) m_CommPort.g_bySendBufm_nSettingPorti = NULL; nCount=2; m_CommPort.g_bySendBufm_nSettingPort1 = 204; m_CommPort.g_bySendBufm_nSettingPort2 = command; m_CommPort.WriteComm( (,switch(command) case 40: headAngle=0; HeadCurr=70;break; case 50: headAngle=1; HeadCurr=60;break; case 60: headAngle=2; HeadCurr=50;break; case 70: headAngle=3; HeadCurr=40;break; default: break; BT_Ack_Flag=1; gMFTimerFlag=0;gMFTimer=0; ,3、定义变量 int HeadCurr=70;(10行),3、在recDlg.h中添加源程序 void CrecDlg:SendHead2BT(BYTE command);(25行) CCommThread m_CommPort;(24行) BOOL m_OpenSatus;(26行),4、编译程序 5、运行程序,步骤二:,向“Property”group box中添加事件:“Button” 操作:A、属性“Caption”:Button1改为 CONNECT (Camera) B、属性“ID”:IDC_BUTTON改为 IDC_BUTTON_CON 如图3-2所示,图3-2,步骤三:添加源代码并讲解,一、向recDlg.cpp中添加源代码 1、双击CONNECT (Camera)按钮进入到recDlg.cpp文件中 2、在函数 void CrecDlg:OnBnClickedButtonCon() 中添加代码,if(usb_flag=0) /disconnect status GetDlgItem(IDC_BUTTON_CON)-EnableWindow(FALSE); if(InitUSB1(robotdata63)=0) GetDlgItem(IDC_BUTTON_CON)-EnableWindow(TRUE); return ; /GetDlgItem(IDC_BUTTON_CON)-EnableWindow(TRUE); SetTimer(1,50,NULL); /50ms timer inter- OnTimer GetDlgItem(IDC_SLIDER_FREQ)-EnableWindow(FALSE); ,else /connect status AfxMessageBo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论