对话框中加入了RichEdit控件, 这是TestDlg.h中的部分内容:
//TestDlg.h
class CTestDlg : public CDialog
{
  ...
  //{{AFX_DATA(CADSLModemTestDlg)
   enum { IDD = IDD_ADSLMODEMTEST_DIALOG };
   CRichEditCtrl m_WAITSTR;
  //}}AFX_DATA
 ...
}
而我在另外的文件中自定义了类:
//Text.h
class CText: public CObject
{
public:
  bool FindString(char *KeyString);
 ...};
那么我怎么在Text.cpp中的FindString(...)函数实现中访问RichEdit来在其中查找字符串呢?
我试过使用AfxGetMainWnd()->m_hWnd得到对话框指针, 再使用GetDlgItem得到句柄,
但是又怎样使用RichEdit的成员函数FindText呢, 就是说关键怎样访问class CTestDlg中的
 CRichEditCtrl m_WAITSTR; ?另外怎样在自定义类中访问class CTestDlg中的成员函数?
谢谢各位.

解决方案 »

  1.   

    当然我知道在class CTestDlg的成员函数中实现查找,完全可以。
    但是我想在自定义类中实现,因为不太可能凡是要访问RichEdit时都这样做
    另外程序复杂时结构更清晰,更容易修改
      

  2.   

    定义一个函数将CRichEditCtrl的指针传给CText
      

  3.   

    的确是这样,谢谢!
    我将bool FindString(char *KeyString);
    改为bool FindString(CRichEditCtrl *pRichEdit, char *KeyString);
    然后在CTestDlg类中某函数中调用时写:
      FindString(&m_WAITSTR, KeyString);
    搞掂了。
    另外我还想请教,如果再在对话框中加入另外一个什么控件(不是RichEdit),也想在
    自定义类中访问,那该怎么办呢?不会要将FindString的参数改成struct以方便传入吧?
    还有,能否在自定义类中调用CTestDlg的成员函数呢?
      

  4.   

    另外我还想请教,如果再在对话框中加入另外一个什么控件(不是RichEdit),也想在
    自定义类中访问,那该怎么办呢?不会要将FindString的参数改成struct以方便传入吧?
    ===================================================
    直接传入对话框的指针就可以了能否在自定义类中调用CTestDlg的成员函数呢?
    ===================================================
    如果是公有函数,没有问题
    如果私有和保护
    class CTestDlg 
    {
    friend class CText;  // Declare a friend class
    ......
    };