Windows API 设置窗口下控件Enable属性
相关接口C#互操作封送处理
[DllImport("user32.dll")]
unsafe public static extern bool UpdateWindow(IntPtr hWnd);//更新窗口
[DllImport("user32.dll")]
unsafe public static extern bool EnableWindow(IntPtr hWnd, bool bEnable);//设置Enable属性
[DllImport("user32.dll")]
unsafe public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);//查找窗口/控件
NOTE:
【FindWindowEx】:https://msdn.microsoft.com/en-us/library/ms633500(VS.85).aspx
【UpdateWindow】:https://msdn.microsoft.com/library/windows/desktop/dd145167
【FindWindowEx】:https://msdn.microsoft.com/en-us/library/windows/desktop/ms646291(v=vs.85).aspx
获取窗口子控件句柄代码段
private List<IntPtr> GetAllChildrenWindowHandles(IntPtr hParent, int maxCount)
{
var handles = new List<IntPtr>();
int ct = 0;
IntPtr prevChild = IntPtr.Zero;
IntPtr currChild = IntPtr.Zero;
while (true && ct < maxCount)
{
currChild = FindWindowEx(hParent, prevChild, null, null);
if (currChild == IntPtr.Zero) break;
handles.Add(currChild);
prevChild = currChild;
++ct;
}
return handles;
}