zoukankan      html  css  js  c++  java
  • 有几个控件的操作时有关联关系,一个对话框中有多组这样的控件群,各个组中的控件的消息响应处理非常类似,以下提供解决方案

    有几个控件的操作时有关联关系,一个对话框中有多组这样的控件群,各个组中的控件的消息响应处理非常类似,以下提供解决方案
    1、定义控件ID记录结构
    typedef  struct 
    {
     UINT nTxtFilePath;
     UINT nBrowseBtn;
     UINT nCleanBtn;
     UINT nCleanCheck;
    } DLG_ITEM_GROUP;

    2、定义控件组ID
    enum { CD_R0 = 0,
    CD_R1 = 1,
    CD_R2 = 2,
    CD_G0 = 3,
    CD_G1 = 4,
    CD_G2 = 5,
    CD_B0 = 6,
    CD_B1 = 7,
    CD_B2 = 8};
    3、记录所有控件ID记录
    m_DlgItemGroups[CD_R0].nTxtFilePath = IDC_COLOR_R0;
    m_DlgItemGroups[CD_R0].nBrowseBtn = IDC_BUTTON_R0;
    m_DlgItemGroups[CD_R0].nCleanBtn = IDC_BUTTON_CLEAN_R0;
    m_DlgItemGroups[CD_R0].nCleanCheck = IDC_CHECK_CLEAN_R0;

    ....

    m_DlgItemGroups[CD_B2].nTxtFilePath = IDC_COLOR_B2;
    m_DlgItemGroups[CD_B2].nBrowseBtn = IDC_BUTTON_B2;
    m_DlgItemGroups[CD_B2].nCleanBtn = IDC_BUTTON_CLEAN_B2;
    m_DlgItemGroups[CD_B2].nCleanCheck = IDC_CHECK_CLEAN_B2;
    4、定义消息处理函数
    int CCDOperDlg3::OnBnClickedButtonCleanMessage(int nID)
    {
     //
     GetDlgItem(m_DlgItemGroups[nID].nTxtFilePath)->SetWindowText(_T(""));

     CButton *pCheck = (CButton *)GetDlgItem(m_DlgItemGroups[nID].nCleanCheck);
     pCheck->SetCheck(TRUE);

     UpdateData(); // 使用此函数后,不知界面上窗口的状态发生变化,窗口关联的变量也将放生便哈
     return 0;
    }
    5、按钮消息处理
    void CCDOperDlg3::OnBnClickedButtonCleanR0()
    void CCDOperDlg3::OnBnClickedButtonCleanR1()
    void CCDOperDlg3::OnBnClickedButtonCleanR2()
    ...
    void CCDOperDlg3::OnBnClickedButtonCleanB1()
    void CCDOperDlg3::OnBnClickedButtonCleanB2()
    {
     // TODO: ?ú′?ìí?ó???tí¨?a′|àí3ìDò′ú??
     OnBnClickedButtonCleanMessage(CD_B2);
    }

  • 相关阅读:
    CSS3中各种属性的意思
    Python全栈Day 18部分知识点
    Python全栈Day 17部分知识点
    Python全栈Day 16部分知识点
    Python全栈Day 15部分知识点
    Python全栈Day 14部分知识点
    Python全栈Day 13部分知识点
    Python全栈Day 12部分知识点
    Python全栈Day 11部分知识点
    时间复杂度和空间复杂度
  • 原文地址:https://www.cnblogs.com/carl2380/p/1964894.html
Copyright © 2011-2022 走看看