MFC で mscomm コントロールを使うには

MFCでMSCommコントロールを使用するには、以下の手順に従います。

  1. MFC アプリケーションのリソースビューで、ダイアログエディターを起動する。
  2. ダイアログ上に、MSCOMMというクラス名のCOMコントロールを追加する。
  3. コントロールをダブルクリックすると、変数が自動生成され、それを使ってコントロールを操作できます。
  4. ダイアログクラスのヘッダファイルに#include を追加して、mscommコントロールのヘッダファイルをインクルードする。
  5. OnInitDialog() 関数で、コントロールを作成するためにコントロールの Create() 関数を呼び出して、対応するプロパティを設定します。例:
  6. BOOL CMyDlg::OnInitDialog()
    {
    CDialogEx::OnInitDialog();// MSCommコントロールを作成します
    m_Mscomm.Create(_T(“MSCOMM”), WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), this, IDC_MSCOMM);

    // コントロールのプロパティを設定します
    m_Mscomm.SetPort(1); // シリアル番号を設定します
    m_Mscomm.SetSettings(_T(“9600,N,8,1”)); // ボーレート、パリティ、データビット、ストップビットを設定します

    return TRUE;
    }

  7. 制御の必要な場面では、制御のメンバー関数を利用して制御を行う。例えば、シリアルポートのオープンやデータ送信などがある。
  8. シリアルポートを開く
    m_Mscomm.SetPortOpen(TRUE);// データを送信する
    CString strData = _T(“Hello, World!”);
    m_Mscomm.SetOutput(COleVariant(strData));
  9. ダイアログクラスのヘッダファイルに、コントロールのメッセージ対応関数を追加します。たとえば、
  10. afx_msg void CCommEventMscomm();
  11. ダイアログクラスのソースファイルでは、コントロールのイベントを処理するためのコントロールのメッセージマッピング関数を定義します。
  12. BEGIN_MESSAGE_MAP(CMyDlg, CDialogEx)
    ON_EVENT(CMyDlg::IDC_MSCOMM, 1, OnCommEventMscomm, VTS_NONE)
    END_MESSAGE_MAP()`void CMyDlg::OnCommEventMscomm()
    {
    // コントロールのイベント(データの受信など)を処理する
    }

上述の手順により、MFCではMsCommコントロールを使用してシリアル通信を行うことができます。

bannerAds