一个数字输入输出测试小程序,出乎意料的带来一堆小问题.
输入输出端口相对较多还格式统一,自然想到动态批量创建.
BOOL CDlgSensor::OnInitDialog()
{
CBaseDialog_PGY::OnInitDialog();
// TODO: 在此添加额外的初始化
CRect rect;
GetDlgItem(IDC_BTTN_SENREF)->GetWindowRect(&rect);
ScreenToClient(&rect);
int nx = 0, ny = 0;
m_bttnSensor = new CMFCButton*[MaxNum];
for (int ni = 0; ni < MaxNum; ++ni)
{
CString strBttn;
strBttn.Format("I_%d", ni);
CRect rectBttn(rect);
nx = ni%LINECTRL_NUM;
m_bttnSensor[ni] = new CMFCButton;
rectBttn.OffsetRect(nx*(rect.Width()+5), ny*(rect.Height()+10));
m_bttnSensor[ni]->m_bTransparent = TRUE;
m_bttnSensor[ni]->SetImage(IDB_BMP_BLUE, IDB_BMP_BLUE, IDB_BMP_BLUE);
m_bttnSensor[ni]->SetCheckedImage(IDB_BMP_GREEN, IDB_BMP_GREEN, IDB_BMP_GREEN);
m_bttnSensor[ni]->Create(strBttn,
BS_AUTOCHECKBOX|WS_CHILD|WS_VISIBLE|BS_MULTILIN