我编写的一个界面MFC程序有很多的  EDIT控件(ID为 IDC_X0Y0,IDC_X0Y1 ...)  对控件进行写如值的时候出现问题了  如果一个一个写当然可以  但是太繁琐了   写一个循环吧   CEdit *pEdit = (CEdit *)GetDlgItem(IDC_X0Y0);  GetDlgItem的参数又不好控制   我想写一个宏来解决这个问题  可是不会  高手指教知道表达清楚了麽 ~~~

解决方案 »

  1.   

    这个要问问你为何摆这么多控件?解决:
    1、使这些ID都连续,这样就可以用一个循环了;2、用EnumChildWindows机制。
      

  2.   

    连续ID当然是可以的  我是想 能不能用宏来实现呢
    比如  定义一个这样的宏
    #define IDC_XIYJ(i,j)  ...用 IDC_XIYJ(i,j)(假定此时的 i ,j值都是2)  替换后正好是  IDC_X2Y2
    刚问了下同事 也是说连续ID 
      

  3.   

    写宏还不如写个函数,更清晰。如:void C***::ProcessEdit(int editID)
    {
        CEdit *pEdit = (CEdit*)GetDlgItem(editID);
        ....
    }
      

  4.   


    #define IDC_XIYJ(i,j) IDC_XY#i#j
      

  5.   

    upUNIT UI[] ={IDC_EDIT1,IDC_EDIT2,...};;#define AGG_GET_IDC(x) UI[x]