⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wifitestdlg.cpp

📁 wince5下wifi连接配置软件,Vs2005编写
💻 CPP
字号:
// WifiTestDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "WifiTest.h"
#include "WifiTestDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CWifiTestDlg 对话框

CWifiTestDlg::CWifiTestDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CWifiTestDlg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CWifiTestDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CWifiTestDlg, CDialog)
#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
	ON_WM_SIZE()
#endif
	//}}AFX_MSG_MAP
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BUTTON1, &CWifiTestDlg::OnBnClickedButton1)
END_MESSAGE_MAP()


// CWifiTestDlg 消息处理程序

BOOL CWifiTestDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

    CListCtrl* pList = (CListCtrl*)this->GetDlgItem(IDC_LIST_APS);
    pList->InsertColumn(0, _T("SSID"), 0, 100);
    pList->InsertColumn(1, _T("Signal"), 0, 100);

    if (!this->m_wlanUtil.Init())
        MessageBox(this->m_wlanUtil.GetLastErrorMsg());
    SetTimer(1, 5000, NULL);
	
	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
void CWifiTestDlg::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
{
	DRA::RelayoutDialog(
		AfxGetInstanceHandle(), 
		this->m_hWnd, 
		DRA::GetDisplayMode() != DRA::Portrait ? 
			MAKEINTRESOURCE(IDD_WIFITEST_DIALOG_WIDE) : 
			MAKEINTRESOURCE(IDD_WIFITEST_DIALOG));
}
#endif


void CWifiTestDlg::OnTimer(UINT_PTR nIDEvent)
{
    // TODO: Add your message handler code here and/or call default
    this->m_nCounter++;
    INT     nSignal = -100;
    if (this->m_wlanUtil.IsInit())
    {
        ///< refresh SSID
        BYTE    szSsid[51] = "";
        memset(szSsid, 0, 51);
        if (this->m_wlanUtil.GetSsid(this->m_wlanUtil.GetFirstDeviceName(), szSsid, 50))
        {
            this->SetDlgItemTextW(IDC_EDIT_SSID, this->m_wlanUtil.SsidToString(szSsid).c_str());
        }
        else
        {
            this->SetDlgItemTextW(IDC_EDIT_INFO, this->m_wlanUtil.GetLastErrorMsg());
        }

        ///< refresh signal strength
        if (this->m_wlanUtil.GetSignalStrength(this->m_wlanUtil.GetFirstDeviceName(), &nSignal))
        {
            std::wstring    strTmp = this->m_wlanUtil.SignalStrengthToString(nSignal);
            TCHAR           szTmp[20] = _T("");
            _stprintf(szTmp, _T("(%d)"), nSignal);
            strTmp.append(szTmp);
            this->SetDlgItemTextW(IDC_EDIT_SIGNAL, strTmp.c_str());
        }
        else
        {
            this->SetDlgItemTextW(IDC_EDIT_INFO, this->m_wlanUtil.GetLastErrorMsg());
        }
    }
	//-------------------
    if (m_nCounter == 3)
    {
        ///< scan for available APs
        if (!this->m_wlanUtil.ScanForBSSIDList(this->m_wlanUtil.GetFirstDeviceName()))
        {
            this->SetDlgItemTextW(IDC_EDIT_INFO, this->m_wlanUtil.GetLastErrorMsg());
        }
    }
    else if (m_nCounter > 4)
    {
        ///< refresh available APs
        wifi::CAvailableAPList  aps;
        if (this->m_wlanUtil.GetBSSIDList(this->m_wlanUtil.GetFirstDeviceName(), &aps))
        {
            CListCtrl* pList = (CListCtrl*)this->GetDlgItem(IDC_LIST_APS);
            pList->DeleteAllItems();

            for (size_t i = 0; i < aps.m_vectBssid.size(); i++)
            {
                pList->InsertItem(i, this->m_wlanUtil.SsidToString(aps.m_vectBssid[i].Ssid.Ssid, aps.m_vectBssid[i].Ssid.SsidLength).c_str());
                TCHAR   szTmp[20] = _T("");
                _stprintf(szTmp, _T("%d"), aps.m_vectBssid[i].Rssi);
                pList->SetItemText(i, 1, this->m_wlanUtil.SignalStrengthToString(aps.m_vectBssid[i].Rssi).append(szTmp).c_str());
            }
        }
        else
        {
            this->SetDlgItemTextW(IDC_EDIT_INFO, this->m_wlanUtil.GetLastErrorMsg());
        }
        TCHAR   szTmp[30] = _T("");
        _stprintf(szTmp, _T("List:%d - Vect:%d"), aps.m_bssidList.NumberOfItems, aps.m_vectBssid.size());
        SetDlgItemText(IDC_EDIT_INFO, szTmp);
        m_nCounter = 0;
    }

    CDialog::OnTimer(nIDEvent);
}

void CWifiTestDlg::OnBnClickedButton1()
{
		wifi::CAvailableAPList  aps;
        if (this->m_wlanUtil.GetBSSIDList(this->m_wlanUtil.GetFirstDeviceName(), &aps))
        {
            CListCtrl* pList = (CListCtrl*)this->GetDlgItem(IDC_LIST_APS);
            pList->DeleteAllItems(); 

			int aaa= aps.m_vectBssid.size();
            for (size_t i = 0; i <aaa; i++)
            {
                pList->InsertItem(i, this->m_wlanUtil.SsidToString(aps.m_vectBssid[i].Ssid.Ssid, aps.m_vectBssid[i].Ssid.SsidLength).c_str());
                TCHAR   szTmp[20] = _T("");
                _stprintf(szTmp, _T("%d"), aps.m_vectBssid[i].Rssi);
                pList->SetItemText(i, 1, this->m_wlanUtil.SignalStrengthToString(aps.m_vectBssid[i].Rssi).append(szTmp).c_str());
            }
        }
        else
        {
            this->SetDlgItemTextW(IDC_EDIT_INFO, this->m_wlanUtil.GetLastErrorMsg());
        }
        TCHAR   szTmp[30] = _T("");
        _stprintf(szTmp, _T("List:%d - Vect:%d"), aps.m_bssidList.NumberOfItems, aps.m_vectBssid.size());
        SetDlgItemText(IDC_EDIT_INFO, szTmp);
        m_nCounter = 0;

		//pList->InsertColumn(0, _T("SSID"), 0, 100);
		//pList->InsertColumn(1, _T("Signal"), 0, 100);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -