发布于 2007-12-28 15:54:30
0楼
谢谢班长,我觉得趋势控件的窗口句柄就是它属性里的Object Name,比如我有个叫“Water_Level”。但我用SetForegroundWindow("Water_Level")不能把这个子窗口提到最前;用您说的FindWindow(NULL,"Water_Level")得到的句柄为空,查MSDN得知对于子窗口要用FindWindowEx(),试了还是不行,这个API要用到主窗口的类,用GetClassName居然得到的为空,我就蒙了!
程序如下:
#pragma code("user32.dll")
HWND FindWindowEx(HWND hwndParent,HWND hwndChildAfter,LPCTSTR lpszClass,LPCTSTR lpszWindow);
BOOL SetForegroundWindow(HWND hWnd);
int GetClassName(HWND hWnd,LPTSTR lpClassName,int nMaxCount);
#pragma code()
HWND hwnd;
char *clsname;
SetVisible("Trend.Pdl","Water_Level",1);//显示子窗口
GetClassName(("Trend.Pdl",clsname,255);查询主窗口的类
hwnd=FindWindowEx("Trend.Pdl",NULL,clsname,"Water_Level");
SetForegroundWindow(hwnd);
运行发现clsname为空,SetForegroundWindow返回0,说明没成功。
直接SetForegroundWindow("Water_Level")也不成功。
服你了……