3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
[VC(Visual C++) ]- 02_VC2005_RS232範例 本篇分享02_VC2005_RS232範例程式,有興趣的(C/P)同好,歡迎來http://filemarkets.com/file/jashliao/3e507059/索取,因為我不會上傳檔案分享哈哈 ^ ^。 主要程式碼 // testrs232Dlg.cpp : 實作檔 //   #include "stdafx.h" #include "testrs232.h" #include "testrs232Dlg.h" #include "RS232.h" #ifdef _DEBUG #definenew DEBUG_NEW #endif     // 對 App About 使用 CAboutDlg 對話方塊 CRS232 RS; class CAboutDlg : public CDialog { public:     CAboutDlg();   // 對話方塊資料     enum { IDD = IDD_ABOUTBOX };       protected:     virtualvoid DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支援   // 程式碼實作 protected:     DECLARE_MESSAGE_MAP() };   CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { }   void CAboutDlg::DoDataExchange(CDataExchange* pDX) {     CDialog::DoDataExchange(pDX); }   BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP()     // Ctestrs232Dlg 對話方塊         Ctestrs232Dlg::Ctestrs232Dlg(CWnd* pParent /*=NULL*/)     : CDialog(Ctestrs232Dlg::IDD, pParent)     , m_str1(_T("")) {     m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); }   void Ctestrs232Dlg::DoDataExchange(CDataExchange* pDX) {     CDialog::DoDataExchange(pDX);     DDX_Text(pDX, IDC_EDIT1, m_str1); }   BEGIN_MESSAGE_MAP(Ctestrs232Dlg, CDialog)     ON_WM_SYSCOMMAND()     ON_WM_PAINT()     ON_WM_QUERYDRAGICON()     //}}AFX_MSG_MAP     ON_BN_CLICKED(IDC_BUTTON1, &Ctestrs232Dlg::OnBnClickedButton1)     ON_BN_CLICKED(IDC_BUTTON2, &Ctestrs232Dlg::OnBnClickedButton2) END_MESSAGE_MAP()     // Ctestrs232Dlg 訊息處理常式   BOOL Ctestrs232Dlg::OnInitDialog() {     CDialog::OnInitDialog();       // 將 [關於...] 功能表加入系統功能表。       // IDM_ABOUTBOX 必須在系統命令範圍之中。     ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);     ASSERT(IDM_ABOUTBOX < 0xF000);       CMenu* pSysMenu = GetSystemMenu(FALSE);     if (pSysMenu != NULL)     {         CString strAboutMenu;         strAboutMenu.LoadString(IDS_ABOUTBOX);         if (!strAboutMenu.IsEmpty())         {             pSysMenu->AppendMenu(MF_SEPARATOR);             pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);         }     }       // 設定此對話方塊的圖示。當應用程式的主視窗不是對話方塊時,     // 框架會自動從事此作業     SetIcon(m_hIcon, TRUE);            // 設定大圖示     SetIcon(m_hIcon, FALSE);        // 設定小圖示       // TODO: 在此加入額外的初始設定       return TRUE;  // 傳回 TRUE,除非您對控制項設定焦點 }   void Ctestrs232Dlg::OnSysCommand(UINT nID, LPARAM lParam) {     if ((nID & 0xFFF0) == IDM_ABOUTBOX)     {         CAboutDlg dlgAbout;         dlgAbout.DoModal();     }     else     {         CDialog::OnSysCommand(nID, lParam);     } }   // 如果將最小化按鈕加入您的對話方塊,您需要下列的程式碼, // 以便繪製圖示。對於使用文件/檢視模式的 MFC 應用程式, // 框架會自動完成此作業。   void Ctestrs232Dlg::OnPaint() {     if (IsIconic())     {         CPaintDC dc(this); // 繪製的裝置內容           SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);           // 將圖示置中於用戶端矩形         int cxIcon = GetSystemMetrics(SM_CXICON);         int cyIcon = GetSystemMetrics(SM_CYICON);         CRect rect;         GetClientRect(&rect);         int x = (rect.Width() - cxIcon + 1) / 2;         int y = (rect.Height() - cyIcon + 1) / 2;           // 描繪圖示         dc.DrawIcon(x, y, m_hIcon);     }     else     {         CDialog::OnPaint();     } }   // 當使用者拖曳最小化視窗時, // 系統呼叫這個功能取得游標顯示。 HCURSOR Ctestrs232Dlg::OnQueryDragIcon() {     returnstatic_cast(m_hIcon); }     void Ctestrs232Dlg::OnBnClickedButton1() {     // TODO: 在此加入控制項告知處理常式程式碼     RS.OpenCom(1); }   void Ctestrs232Dlg::OnBnClickedButton2() {     // TODO: 在此加入控制項告知處理常式程式碼     char *str;     long number;     UpdateData(true);         number=m_str1.GetLength();     UpdateData(false);     str=new char[number];     for(int i=0;i     {         *(str+i)=(char)m_str1[i];     }      RS.Write(str,number); }    

本文由jashliaoeuwordpress提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦