你这个代码看得我头痛,说明你基础很薄弱,还是有时间多学学吧
指出你几个有问题的地方
1.Cnum 你没有初始化为0
2.CALLBACK前面应该是大写的BOOL 不是bool 这两者有区别
3.GetWindowText 在VS中默认是W,你如果要用cout或者printf应该加A,要么你用wcout或者wprintf
4.如果打印str[25],只会是一个字符,而不是字符串,乱码是很正常的事,详解可以看ascii码表,如果你要截取str[25]到str[255]这串字符串,那就另说
[C++] 纯文本查看 复制代码 int Cnum, Pnum = 0;
BOOL CALLBACK EnumChildWindowsProc(HWND HwndChild, LPARAM lparam)
{
char Str[255] = { 0 };
Cnum++;
GetWindowTextA(HwndChild, Str, 255);
printf("%d :%s\n", Cnum, Str);
return TRUE;
}
int main()
{
EnumChildWindows((HWND)197552, EnumChildWindowsProc, NULL);
std::cout << "Hello World!\n";
getchar();
}
|