对话框中加入了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中的成员函数?
谢谢各位.
//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中的成员函数?
谢谢各位.
但是我想在自定义类中实现,因为不太可能凡是要访问RichEdit时都这样做
另外程序复杂时结构更清晰,更容易修改
我将bool FindString(char *KeyString);
改为bool FindString(CRichEditCtrl *pRichEdit, char *KeyString);
然后在CTestDlg类中某函数中调用时写:
FindString(&m_WAITSTR, KeyString);
搞掂了。
另外我还想请教,如果再在对话框中加入另外一个什么控件(不是RichEdit),也想在
自定义类中访问,那该怎么办呢?不会要将FindString的参数改成struct以方便传入吧?
还有,能否在自定义类中调用CTestDlg的成员函数呢?
自定义类中访问,那该怎么办呢?不会要将FindString的参数改成struct以方便传入吧?
===================================================
直接传入对话框的指针就可以了能否在自定义类中调用CTestDlg的成员函数呢?
===================================================
如果是公有函数,没有问题
如果私有和保护
class CTestDlg
{
friend class CText; // Declare a friend class
......
};