问个比较白痴的问题,我有一个窗口,然后窗口中有很多的按钮,文本框之类的控件,我有什么办法可以一次性的进行判定窗口中的这些东西都已经生成完毕了呢?
因为我需要在OnSize(UINT nType, int cx, int cy) 中对这些控件的位置进行重置,所以如果没有生成的话,会出现报错,但是那么多的控件,如果挨个判定,又太麻烦,不知道大家有什么比较好的方法啊?

解决方案 »

  1.   

    try{}
    catch(...)
    {}忽略错误,这是第一种方法,最好。第二种方法,在OnInitDialog中设置一个变量=true(在构造中置false)该变量为true时,即全部完成。
      

  2.   


    同意楼上如果你是全部控件有规律的移动,你可以考虑遍历子窗口的方式来移动,还没有创建的控件就不用处理了
    也有其它方法判断
    // 将你的控件ID建一个数组 或者 人为将控件的ID编成连续的一段范围(这样就不用数组了)
    UINT vnIDs[]=
    {
        IDC_ST_USER,
        IDC_ED_USER,
        IDC_ST_PASS,
        IDC_ED_PASS,
        ...
    };// 然后用循环判断就行了for(int i = sizeof(vnIDs) / sizeof(UINT) - 1; i >= 0; i--)
    {
        if(GetDlgItem(vnIDs[i]) == NULL)
            break;
    }if(i < 0)
    // OK
    else
    // KO