Пример #1
0
    public static bool SetIcon(byte[] bgra, int width, int height, WindowIconKind kind, bool topRowFirst = false)
    {
        var hwnd = mainWindow;

        if (hwnd == IntPtr.Zero)
        {
            return(false);
        }
        var    index = (int)kind;
        IntPtr icon;

        if (bgra != null)
        {
            icon = _SetIcon_cache[index].update(bgra, width, height, topRowFirst);
            if (icon == IntPtr.Zero)
            {
                return(false);
            }
            if (!_SetIcon_hasBaseIcon[index])
            {
                _SetIcon_hasBaseIcon[index] = true;
                _SetIcon_baseIcon[index]    = SendMessage(hwnd, 0x7F /*WM_GETICON*/, index, IntPtr.Zero);
            }
        }
        else
        {
            if (!_SetIcon_hasBaseIcon[index])
            {
                return(true);
            }
            icon = _SetIcon_baseIcon[index];
        }
        SendMessage(hwnd, 0x80 /*WM_SETICON*/, index, icon);
        return(true);
    }
Пример #2
0
    public static bool SetIcon(Texture2D tex, WindowIconKind kind)
    {
        var hwnd = mainWindow;

        if (hwnd == IntPtr.Zero)
        {
            return(false);
        }
        var    index = (int)kind;
        IntPtr icon;

        if (tex != null)
        {
            icon = _SetIcon_cache[index].update(tex);
            if (icon == IntPtr.Zero)
            {
                return(false);
            }
            if (!_SetIcon_hasBaseIcon[index])
            {
                _SetIcon_hasBaseIcon[index] = true;
                _SetIcon_baseIcon[index]    = SendMessage(hwnd, 0x7F /*WM_GETICON*/, index, IntPtr.Zero);
            }
        }
        else
        {
            if (!_SetIcon_hasBaseIcon[index])
            {
                return(true);
            }
            icon = _SetIcon_baseIcon[index];
        }
        SendMessage(hwnd, 0x80 /*WM_SETICON*/, index, icon);
        return(true);
    }