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

📄 cosonrfidtracerdlg.cpp

📁 一个非常好的WINCE界面
💻 CPP
字号:
// CosonRFIDTracerDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CosonRFIDTracer.h"
#include "CosonRFIDTracerDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CCosonRFIDTracerDlg dialog

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

void CCosonRFIDTracerDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
#if USE_DEFAULT_LC
    DDX_Control(pDX, IDC_LIST_CONTEXT, m_lcListCtrl);
#else
    DDX_Control(pDX, IDC_LIST_CONTEXT, m_CtrlListBaseInfo);
#endif 
}

BEGIN_MESSAGE_MAP(CCosonRFIDTracerDlg, CDialog)
#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
	ON_WM_SIZE()
#endif
	//}}AFX_MSG_MAP
    ON_BN_CLICKED(IDC_EXIT, &CCosonRFIDTracerDlg::OnBnClickedExit)
#if USE_DEFAULT_LC
    ON_BN_CLICKED(IDC_DELETE, &CCosonRFIDTracerDlg::OnBnClickedDelete)
    ON_BN_CLICKED(IDC_INSERT, &CCosonRFIDTracerDlg::OnBnClickedInsert)
#else 
    ON_MESSAGE(WM_VALIDATE, OnEndLabelEditVariableCriteria) //添加的自定义的消息
    ON_MESSAGE(WM_SET_ITEMS, PopulateComboList)  //添加的自定义的消息
#endif
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_CONTEXT, &CCosonRFIDTracerDlg::OnLvnItemchangedListContext)
END_MESSAGE_MAP()


// CCosonRFIDTracerDlg message handlers

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

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	// TODO: Add extra initialization here
#if USE_DEFAULT_LC
    m_lcListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);
    m_lcListCtrl.InsertColumn(0, _T("Col 1"), LVCFMT_LEFT, 100, 0);   // 设置列
    m_lcListCtrl.InsertColumn(1, _T("Col 2"), LVCFMT_LEFT, 100, 1);
    m_lcListCtrl.InsertColumn(2, _T("Col 3"), LVCFMT_LEFT, 100, 2);

    WCHAR wcBuf[50];
    for (int i = 0; i < 50; i++)
    {
        wsprintf(wcBuf, _T("Item %d_1"), i);
        m_lcListCtrl.InsertItem(i, wcBuf);        // 插入行
        wsprintf(wcBuf, _T("Item %d_2"), i);
        m_lcListCtrl.SetItemText(i, 1, wcBuf);    // 设置该行的不同列的显示字符
        wsprintf(wcBuf, _T("Item %d_3"), i);
        m_lcListCtrl.SetItemText(i, 2, wcBuf);
    }
#else
    //初始化列
    CFont font;
    VERIFY(font.CreateFont(
        18,                        // nHeight
        0,                         // nWidth
        0,                         // nEscapement
        0,                         // nOrientation
        FW_NORMAL,                 // nWeight
        FALSE,                     // bItalic
        FALSE,                     // bUnderline
        0,                         // cStrikeOut
        ANSI_CHARSET,              // nCharSet
        OUT_DEFAULT_PRECIS,        // nOutPrecision
        CLIP_DEFAULT_PRECIS,       // nClipPrecision
        DEFAULT_QUALITY,           // nQuality
        DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
        _T("宋体")));
    m_CtrlListBaseInfo.SetFont(&font);
    m_CtrlListBaseInfo.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EDITLABELS);

    m_CtrlListBaseInfo.InsertColumn(0, _T("序号"), LVCFMT_CENTER, 40);
    m_CtrlListBaseInfo.InsertColumn(1, _T("有效标志"), LVCFMT_CENTER, 60);

    m_CtrlListBaseInfo.SetReadOnlyColumns(0);  //read only
    m_CtrlListBaseInfo.SetReadOnlyColumns(1);  //read only
    m_CtrlListBaseInfo.SetComboColumns(1, TRUE);
    m_CtrlListBaseInfo.EnableVScroll();

    m_CtrlListBaseInfo.InsertColumn(2, _T("功能码"), LVCFMT_CENTER, 80);

    CString strValidChars(_T("0123456789ABCDEFabcdef"));
    m_CtrlListBaseInfo.SetColumnValidEditCtrlCharacters(strValidChars, 2);  // HEX only edit

    //WCHAR wcBuf[50];
    //for (int i = 0; i < 50; i++)
    //{
    //    wsprintf(wcBuf, _T("Item %d_1"), i);
    //    m_CtrlListBaseInfo.InsertItem(i, wcBuf);        // 插入行
    //    wsprintf(wcBuf, _T("Item %d_2"), i);
    //    m_CtrlListBaseInfo.SetItemText(i, 1, wcBuf);    // 设置该行的不同列的显示字符
    //    wsprintf(wcBuf, _T("Item %d_3"), i);
    //    m_CtrlListBaseInfo.SetItemText(i, 2, wcBuf);
    //}
    UpdateData(TRUE);

    int i = m_CtrlListBaseInfo.GetItemCount();

    CString str;
    str.Format(_T("%d"),i+1);

    m_CtrlListBaseInfo.InsertItem(LVIF_TEXT | LVIF_STATE, i + 1, 
        str, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED, 0, 0);
    UpdateData(FALSE);
#endif 
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
void CCosonRFIDTracerDlg::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
{
	if (AfxIsDRAEnabled())
	{
		DRA::RelayoutDialog(
			AfxGetResourceHandle(), 
			this->m_hWnd, 
			DRA::GetDisplayMode() != DRA::Portrait ? 
			MAKEINTRESOURCE(IDD_COSONRFIDTRACER_DIALOG_WIDE) : 
			MAKEINTRESOURCE(IDD_COSONRFIDTRACER_DIALOG));
	}
}
#endif


void CCosonRFIDTracerDlg::OnBnClickedExit()
{
    // TODO: Add your control notification handler code here
    SendMessage(WM_CLOSE);
}

#if USE_DEFAULT_LC
void CCosonRFIDTracerDlg::OnBnClickedDelete()
{
    // TODO: Add your control notification handler code here
    POSITION p = m_lcListCtrl.GetFirstSelectedItemPosition();     // 删除选定列

    while (p)
    {
        int nSelected = m_lcListCtrl.GetNextSelectedItem(p);
        m_lcListCtrl.DeleteItem(nSelected);
        p = m_lcListCtrl.GetFirstSelectedItemPosition();
    }
}

void CCosonRFIDTracerDlg::OnBnClickedInsert()
{
    // TODO: Add your control notification handler code here
    int nCount = m_lcListCtrl.GetItemCount();
    WCHAR wcBuf[50];
    
    wsprintf(wcBuf, _T("Item %d_1"), nCount);
    m_lcListCtrl.InsertItem(nCount, wcBuf);              // 插入行
    wsprintf(wcBuf, _T("Item %d_2"), nCount);
    m_lcListCtrl.SetItemText(nCount, 1, wcBuf);          // 设置该行的不同列的显示字符
    wsprintf(wcBuf, _T("Item %d_3"), nCount);
    m_lcListCtrl.SetItemText(nCount, 2, wcBuf);
}
#else
LRESULT CCosonRFIDTracerDlg::PopulateComboList(WPARAM wParam, LPARAM lParam)
{
    // Get the Combobox window pointer
    CComboBox* pInPlaceCombo = static_cast<CComboBox *>(GetFocus());

    // Get the inplace combbox top left
    CRect obWindowRect;

    pInPlaceCombo->GetWindowRect(&obWindowRect);

    CPoint obInPlaceComboTopLeft(obWindowRect.TopLeft());

    // Get the active list
    // Get the control window rect
    // If the inplace combobox top left is in the rect then
    // The control is the active control
    CWnd *pFocusWnd = GetFocus();
    pFocusWnd->GetWindowRect(&obWindowRect); 

    int iColIndex = (int)wParam;

    CStringList* pComboList = reinterpret_cast<CStringList *>(lParam);
    pComboList->RemoveAll(); 

    if(obWindowRect.PtInRect(obInPlaceComboTopLeft))
    {    
        if((iColIndex == 1) || (iColIndex == 2))
        {
            pComboList->AddTail(_T("是"));
            pComboList->AddTail(_T("否")); 
        }   
    }
    return true;
}

LRESULT CCosonRFIDTracerDlg::OnEndLabelEditVariableCriteria(WPARAM wParam, LPARAM lParam)
{
    LV_DISPINFO* pDispInfo = (LV_DISPINFO*)lParam;
    // TODO: Add your control notification handler code here
    return 1;
}

#endif

void CCosonRFIDTracerDlg::OnLvnItemchangedListContext(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
	// TODO: Add your control notification handler code here
	*pResult = 0;
}

⌨️ 快捷键说明

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