• 获取ListControl控件中(复选框)CheckBox的状态


    原文地址:http://blog.chinaunix.net/uid-20680966-id-1896376.html

    1 建立测试工程     

    新建一个对话框工程,并添加一个CListCtrl控件,并关联一个成员变量m_List。

    2 设置LVS_EX_CHECKBOXES风格     

    ListView_SetExtendedListViewStyle(m_List.GetSafeHwnd(), m_List.GetExStyle() | LVS_EX_CHECKBOXES);

    3 为listctrl添加测试项     

    在OnInitDialog()中添加如下代码:      

    m_List.InsertColumn(0,"Name",LVCFMT_LEFT,150);      

    m_List.InsertColumn(1,"Sex",LVCFMT_LEFT,200);      

    m_List.InsertItem(0, "ZhangSan");      

    m_List.InsertItem(1, "LiSi");

    4 添加控件通知消息    

    为ListCtrl控件添加LVN_ITEMCHANGED消息。

    系统生成如下代码:

    void CXXXDlg::OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult)

    {

    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); // TODO: Add your control notification handler code here

    *pResult = 0;

    }
    5 在LVN_ITEMCHANGED消息处理函数中添加代码如下:

    void CXXXDlg::OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult)

    {

    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);

    // TODO: Add your control notification handler code here

    /* typedef struct tagNMLISTVIEW

    { NMHDR hdr;

    int iItem;

    int iSubItem;

    UINT uNewState;

    UINT uOldState;

    UINT uChanged;

    POINT ptAction;

    LPARAM lParam;

    }

    NMLISTVIEW, *LPNMLISTVIEW; */

    if((pNMLV->uOldState & INDEXTOSTATEIMAGEMASK(1))

    /* old state : unchecked */   

    && (pNMLV->uNewState & INDEXTOSTATEIMAGEMASK(2))

    /* new state : checked */   )

    {

      TRACE("Item %d is checked ", pNMLV->iItem);

    }

    else if((pNMLV->uOldState & INDEXTOSTATEIMAGEMASK(2)) /* old state : checked */   

    && (pNMLV->uNewState & INDEXTOSTATEIMAGEMASK(1)) /* new state : unchecked */   )

    {   

    TRACE("Item %d is unchecked ", pNMLV->iItem);

    }

    else

    {   

    TRACE("Item %d does't change the check-status ", pNMLV->iItem);

    }
    *pResult = 0;

    }

    6 调试 在debug环境下,改变checkbox的选中状态,查看输出信息。 OK.

  • 相关阅读:
    redis 事务 lq
    redis集群架构高可用分析 lq
    redis分布式锁 lq
    jvm垃圾回收 lq
    【攻防世界】逆向666
    第六届上海市大学生网络安全大赛wp
    【攻防世界】逆向answer_to_everying
    2021 DJBCTF(大吉大利杯) wp
    渗透靶机bossplayersCTF
    2020首届祥云杯部分wp
  • 原文地址:https://www.cnblogs.com/CocoWang/p/4097077.html
Copyright © 2020-2023  润新知