本帖最后由 willwayer23 于 2010-03-09 21:01:34 编辑

解决方案 »

  1.   

    [DllImport("gdi32.dll")]
    public static extern IntPtr GetStockObject(int fnObject);
    参数给5。
      

  2.   

    谢谢楼上回答         如果有如下代码
      Color c=Color.FromArgb(128, 255, 0, 0);
                 [DllImport("gdi32.dll")]
            public static extern IntPtr CreateSolidBrush(uint crColor);       如何把 颜色c转化为 CreateSolidBrush(Uint crColor)中的crColor参数 保证二者画出来的颜色相同
      

  3.   

    c.ToArgb,不过CreateSolidBrush好像不支持A。
      

  4.   

    在RGB调色版中,黑色black (0x00000000)刚好就是ARGB(short for Alpha, Red, Green and Blue)的100%透明
      

  5.   

    我有一个小问题,为什么你要用API调用GDI,而不用GDI+来做呢?
      

  6.   


    因为之前的绘图函数都是用API调用做的  想重复利用目前的代买
    现在就是遇到 透明度 填充的一个问题了  还请帮忙
      

  7.   

    设置绘图模式的api。
           [DllImport("gdi32.dll")]
            private static extern IntPtr SetROP2(IntPtr hdc, IntPtr fnDrawMode);参见
    http://msdn.microsoft.com/en-us/library/dd145088(VS.85).aspx
      

  8.   

    [DllImport("gdi32.dll")]
    private static extern IntPtr SetROP2(IntPtr hdc, int fnDrawMode);
      

  9.   

    api函数好像是24位色的吧,楼主可以将填充好的图形数据段取出,更改其A值再copy回去,详细可参考MSDN中Bitmap.LockBits方法的示例