"The EnumWindows function enumerates all top-level windows on the screen by passing the handle to each window..."
注意: "...all top-level windows...",你说的那种对话框不属于top-level window,所以....。要得到所有窗口,在EnumWindowsProc里再EnumChildWindow
注意: "...all top-level windows...",你说的那种对话框不属于top-level window,所以....。要得到所有窗口,在EnumWindowsProc里再EnumChildWindow
注意: "...all top-level windows...",你说的那种对话框不属于top-level window,所以....。要得到所有窗口,在EnumWindowsProc里再EnumChildWindow
你错了,这是可以的。
char lpszWindowCaption[128] = "\0";
ShowMessage(IntToStr((int)sizeof(lpszWindowCaption)));
我用的环境是C++Builder.
应该没问题吧。
不过,我也有些疑惑,为什么sizeof(lpszWindowCaption)会等于128;
如果 定义为 char *结果当然是一个32位的指针,占4个字节;可能这个sizeof(数组名)返回的就是数组的大小!
希望高手深入解析!!!
sizeof(lpszWindowCaption)会等于128
是因为你的这一句:
char lpszWindowCaption[128] = "\0";
再说清楚一点,再深入一点,ok>?
char lpszWindowCaption[128];
sizeof(lpszWindowCaption)就等于128,因为这是告诉编译器你要定义一有128个元素的字符数组。这样编译器就会分配128个字节的内存而不管你往里放什么东西。
感谢dingsg,coolhg,wjf参与!
感谢leer,dingsg,coolhg,wjf参与!