• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
张纯睿
博客园    首页    新随笔    联系   管理    订阅  订阅

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

有几个控件的操作时有关联关系,一个对话框中有多组这样的控件群,各个组中的控件的消息响应处理非常类似,以下提供解决方案
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);
}

posted @ 2011-02-25 14:49  张纯睿  阅读(143)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3