02/10/2018, 00:02

Viết chương trình "Cá Bơi Trên DeskTop"

Trong bài viết ngày hôm nay chứng từ vừa học vừa chơi 1 xíu. Mình sẽ giới thiệu với các bạn viết chương trình để có 1 con cá bơi qua bơi lại trên màn hình máy tính. ​ Với chương trình này các bạn sẽ làm quen với các hàm về đồ họa GDI+. Các bạn tham khảo demo ...

Trong bài viết ngày hôm nay chứng từ vừa học vừa chơi 1 xíu. Mình sẽ giới thiệu với các bạn viết chương trình để có 1 con cá bơi qua bơi lại trên màn hình máy tính. ​Với chương trình này các bạn sẽ làm quen với các hàm về đồ họa GDI+. Các bạn tham khảo demo bên dưới để biết thêm chi tiết:

Vì chương trình cũng khá nhiều code nên mình ko thể post hết lên đây, các bạn download về chạy thử nha: Trong đó quan trong là chúng ta sẽ sử dụng những hàm từ thư viện win32.dllgdi32.dll của window

internal class Win32
{
    [StructLayout(LayoutKind.Sequential)]
    public struct Size
    {
        public Int32 cx;
        public Int32 cy;

        public Size(Int32 x, Int32 y)
        {
            cx = x;
            cy = y;
        }
    }

    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct BLENDFUNCTION
    {
        public byte BlendOp;
        public byte BlendFlags;
        public byte SourceConstantAlpha;
        public byte AlphaFormat;
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct Point
    {
        public Int32 x;
        public Int32 y;

        public Point(Int32 x, Int32 y)
        {
            this.x = x;
            this.y = y;
        }
    }

    public const byte AC_SRC_OVER = 0;
    public const Int32 ULW_ALPHA = 2;
    public const byte AC_SRC_ALPHA = 1;

    [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
    public static extern IntPtr CreateCompatibleDC(IntPtr hDC);

    [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]
    public static extern IntPtr GetDC(IntPtr hWnd);

    [DllImport("gdi32.dll", ExactSpelling = true)]
    public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObj);

    [DllImport("user32.dll", ExactSpelling = true)]
    public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);

    [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
    public static extern int DeleteDC(IntPtr hDC);

    [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
    public static extern int DeleteObject(IntPtr hObj);

    [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]
    public static extern int UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref Point pptDst, ref Size psize, IntPtr hdcSrc, ref Point pptSrc, Int32 crKey, ref BLENDFUNCTION pblend, Int32 dwFlags);

    [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
    public static extern IntPtr ExtCreateRegion(IntPtr lpXform, uint nCount, IntPtr rgnData);
}

Chúc các bạn vui và sẽ ứng dụng được vào chương trình riêng của mình!

Link download

Tags: hình nền desktop
0