GetWindow进行的查询?没有一个唯一确定的标准,比如ID, Text, 但对于不同窗口,这些是可以重复的。

解决方案 »

  1.   

    除ID外或用GetWindowRect函数直接判断位置,若不同则是不同button.胡乱说的,如果不对就当没说过好了.
      

  2.   

    主要判断ID吧, 当然ID重复的也有, 再判断父窗体的信息 
    其他的一些属性也可以做判断 Styles, Extended Styles, ...
      

  3.   

    CWnd* pDlg4 = FindWindow(L"#32770",L"父窗口");
    if (pDlg4)
    {
    pDlg4->ShowWindow(SW_HIDE);
    CWnd* pBtn4 = FindWindowEx(pDlg4->m_hWnd,NULL,L"Button",L"按键名");
    CString csTitle4 = _T("");
    pBtn4->GetWindowText(csTitle4);
    ::PostMessage(pDlg4->m_hWnd,WM_COMMAND,MAKEWPARAM(GetWindowLong(pBtn4->m_hWnd,GWL_ID),BN_CLICKED),(LPARAM)pBtn4->m_hWnd);
    i++;
    }
      

  4.   

    尽量先找到这个button的父窗体有什么特点,确定了父窗体后,相对就好办很多了
    如果这个父窗体没啥特点,再找爷爷窗体
    总归只有这个笨办法了
      

  5.   

    可以根据这个 Button 的信息进行判断,由于是按钮,一般来说,以下信息不会改变:
        1、父窗口
        2、ID
        3、窗口位置及尺寸
        4、窗口类名
        5、窗口名