Windows/MFC

CComPort

aucd29 2013. 10. 2. 18:19
#pragma once


// CComPort

class CComPort : public CComboBox
{
    DECLARE_DYNAMIC(CComPort)

public:
    CComPort();
    virtual ~CComPort();

protected:
    DECLARE_MESSAGE_MAP()
    UINT m_nMaxPortNumber;     // maxinum port number
public:    
    void SetPortList(void);
    CString GetPort(void);
};


//////////////////////////////////////////////////////////////////

// ComPort.cpp : implementation file
//

#include "stdafx.h"
//#include "Upgrader.h"
#include "ComPort.h"


// CComPort

IMPLEMENT_DYNAMIC(CComPort, CComboBox)

CComPort::CComPort()
: m_nMaxPortNumber(50)
{
    
}

CComPort::~CComPort()
{
}


BEGIN_MESSAGE_MAP(CComPort, CComboBox)
END_MESSAGE_MAP()

// CComPort message handlers

void CComPort::SetPortList(void)
{
    int i;
    CString szPort;

    //
    // insert default port list
    //
    for (i=1; i<=50; ++i)
    {
        szPort.Format(L"COM%d", i);
        AddString(szPort);
    }

    SetCurSel(0);
}

CString CComPort::GetPort(void)
{
    int i = GetCurSel();
    CString szPort;

    if (i > 4)
    {
        szPort.Format(L"\\\\.\\COM%d", i + 1);
    }
    else
    {
        szPort.Format(L"COM%d", i + 1);
    }

    return szPort;
}