请问各位大侠,现在我想获取static文本,不通过该static的ID。
操作如下,点击该static控件,获取该控件的文本。刚学习MFC不久,不知道这个问题如何解决,请各位帮帮忙吧,好急

解决方案 »

  1.   

    通过EnumChildWindows(怎么用去查一下),得到static窗口句柄,然后GetWindowText取得。
      

  2.   

    不通过ID的话,就直接给static控件关联变量就行了啊还有,要static控件响应单击消息得把Notify风格选定
      

  3.   

    获取你的点击坐标,然后再判断呗,得到static后再取词
      

  4.   

    我这儿有200个static,想绑定一个处理函数,在点击一个static控件的时候,获取该控件的文本
      

  5.   

    而且这些static是动态生成的.
    操作如下:
    动态生成200个static控件,绑定在一个处理函数上
    点击一个控件的时候,就能获得该控件的文本
      

  6.   

    你动态创建的时候可以绑定一些其他的关键信息到CExtStatic(这个是扩张的CStatic),
    然后将这些信息都保存到map中,nKey,Cwnd×,
    然后当你单击的时通过向父窗口发送nkey过去,然后父窗口通过map得到cwnd指针,然后读取text。
      

  7.   

    你是用Creat生成的吧,最后一个参数就是ID啊,不明白你为什么纠结于不用ID给200个同时添加消息,只能手动来了,首先得保证ID是连续的,
    Fun为消息处理函数
    在头文件里加函数声明
    afx_msg void Fun(UINT nID);
    源文件里再将函数跟消息关联
    ON_CONTROL_RANGE( 0,1,200,Fun) //1指第一个static的ID,200指第200个static的ID
    注意这一句要加在BEGIN_MESSAGE_MAP(C****Dlg, CDialog)和END_MESSAGE_MAP()之间最后定义Fun,str就是要得到的文本
    void C****Dlg::Fun(UINT nID)
    {
        CString str;
        GetDlgItemText(nID,&str);
    }
      

  8.   

    不用ID的好处就在自动化测试时,自动化测试,我只能拿到软件的AP,当然不知道该AP上成千上万个button的ID了...楼主应该是在写自动化测试用例吧.
     这个用C实现起来貌似很难的,不过我见过别人用其他语言实现的,一两句话搞定
      

  9.   


    /*使用这个CWnd::ChildWindowFromPoint()函数,在WM_LBUTTONDOWN消息中,当你点击Static控件的时候处理,得到static控件的文本以后,将该文本显示在主窗口标题栏上
    */
    void CXXXDlg::OnLButtonDown(UINT nFlags, CPoint point)
    {
    // TODO: Add your message handler code here and/or call default
    CWnd* pWnd = ChildWindowFromPoint(point);
    ScreenToClient(&point);
    if(pWnd)
    {
    CString str;
    pWnd->GetWindowText(str);
    SetWindowText(str);
    }
    CDialog::OnLButtonDown(nFlags, point);
    }
      

  10.   

    您好,这个消息是给dialog加对吧,我这样操作了,点击dialog没有控件的地方会相应该函数,点击static控件就不响应该函数,不知道这是什么原因
      

  11.   

    第一次在CSDN上发帖,看到大家这么热情的帮助,心中好温暖。感觉到IT大家庭的淳朴。
    因为static是动态生成的,所以我想把这些static都绑定到一个响应函数上。现在还没有实现,有很多地方还没搞定。
    1、现在能动态创建static控件,在动态创建过程中模式也加了SS_NOTIFY,我选择的是在创建static时给他们赋值为一样的id,所以创建之后就能自动绑定上相应函数。这个已经实现。
    2、在点击该控件的时候,还是不能获取static控件的文本