我在vc6。0中编写了一个类比如:
class test
{char szText[256];
public:
void print()
{GetDlgItemText(NULL,IDC_EDIT1,szText,256);
MessageBox(NULL,szText,"ok",MB_OK);
}
但是我发现在类中GetDlgItemText,MessageBox声明和类外面的普通函数会不一样。而且EDIT1的成员变量在这儿不起作用,出现没有声明的错误。但是在类外去正常。还有GetDlgItemText似乎在类里面不起作用,我输入一个值,但是MessageBox显示是个乱码。我晕了,怎么回事?
class test
{char szText[256];
public:
void print()
{GetDlgItemText(NULL,IDC_EDIT1,szText,256);
MessageBox(NULL,szText,"ok",MB_OK);
}
但是我发现在类中GetDlgItemText,MessageBox声明和类外面的普通函数会不一样。而且EDIT1的成员变量在这儿不起作用,出现没有声明的错误。但是在类外去正常。还有GetDlgItemText似乎在类里面不起作用,我输入一个值,但是MessageBox显示是个乱码。我晕了,怎么回事?
GetDlgItemText(
HWND hDlg,
int nIDDlgItem,
LPTSTR lpString,
int nMaxCount
); 第一个参数 hDlg 不能为 NULL
MessageBox也是这样,在你这个类里只能用全局函数的版本。GetDlgItemText(NULL,IDC_EDIT1,szText,256);第一个参数是对话框的句柄,是必须的,不能用NULL代替。
{
::GetDlgItemText(NULL,IDC_EDIT1,szText,256);
::MessageBox(NULL,szText,"ok",MB_OK);
}
要不就声明成全局变量