在VC中,IDC_CHECK1-IDC_CHECK20多个按钮怎么快速设置?

2020-01-30 13:59发布

本帖最后由 68336016 于 2013-3-27 09:30 编辑

界面上有20个CheckBox,ID号从IDC_CHECK1到IDC_CHECK20(对应的整型数值未必连续),每个CheckBox对应的状态来自一个变量的每一位。
我现在是将变量移位求出对应位置的值,然后设置相应的CheckBox,有20个CheckBox我就得写20次类似的语句。

有没有什么宏操作,跟一个变量联系起来,生成IDC_CHECK1到IDC_CHECK20?
  1.                                         ((CButton*)(GetDlgItem(IDC_CHECK1)))->SetCheck((dwGetVal>>0) & 0x01);
  2.                                         ((CButton*)(GetDlgItem(IDC_CHECK2)))->SetCheck((dwGetVal>>1) & 0x01);
  3.                                         ((CButton*)(GetDlgItem(IDC_CHECK3)))->SetCheck((dwGetVal>>2) & 0x01);
  4.                                         ((CButton*)(GetDlgItem(IDC_CHECK4)))->SetCheck((dwGetVal>>3) & 0x01);
  5.                                         ((CButton*)(GetDlgItem(IDC_CHECK5)))->SetCheck((dwGetVal>>4) & 0x01);
  6.                                         ((CButton*)(GetDlgItem(IDC_CHECK6)))->SetCheck((dwGetVal>>5) & 0x01);
  7.                                         ((CButton*)(GetDlgItem(IDC_CHECK7)))->SetCheck((dwGetVal>>6) & 0x01);
  8.                                         ((CButton*)(GetDlgItem(IDC_CHECK8)))->SetCheck((dwGetVal>>7) & 0x01);
  9.                                         ((CButton*)(GetDlgItem(IDC_CHECK9)))->SetCheck((dwGetVal>>8) & 0x01);
  10.                                                                                 ……
复制代码
0条回答

一周热门 更多>