请教一个API 函数 UpdateLayeredWindow
谁能解释一下 这个函数的参数
该函数定义如下
- C/C++ code
/// <summary> /// 更新层窗体 /// </summary> /// <param name="hwnd">窗体句柄</param> /// <param name="hdcDst">目标句柄(指定为屏幕句柄)</param> /// <param name="pptDst">目标位置</param> /// <param name="psize">目标大小</param> /// <param name="hdcSrc">源句柄</param> /// <param name="pprSrc">源位置</param> /// <param name="crKey">关键色</param> /// <param name="pblend">混合绘制的参数</param> /// <param name="dwFlags">制定绘制的类型(我需要的当然是Alpha了)</param> /// <returns>是否成功</returns> [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)] public static extern bool UpdateLayeredWindow(Handle hwnd, IntPtr hdcDst, ref Point pptDst, ref Size psize, IntPtr hdcSrc, ref Point pprSrc, Int32 crKey, ref BLENDFUNCTION pblend, UpdateLayeredWindow_Prams dwFlags);user32.UpdateLayeredWindow( handler, screenDc, ref newLocation, ref newSize,
memDc, ref sourceLocation, 0, ref blend,UpdateLayeredWindow_Prams.ULW_ALPHA);
这个API函数中其中的,new Size是指什么?我能否根据这个NewSize 指定更新窗体的某一特定矩形以减少,大面积更新占用太多的CPU?
其他的参数最好也能够解释一下,MSDN已经去过了。文字实在有点拗口,难以真正地理解其含义。
希望懂API的熟悉这个函数的大侠 能够用大白话 说一下。
[解决办法]
那个newsize对应的不就是目标区域的size么
这个函数应该是不支持局部更新的