Добавить изображение в строку заголовка окна - PullRequest
1 голос
/ 11 февраля 2020

Я хочу добавить изображение в строку заголовка окна. Я знаю, что это невозможно с родными инструментами Winforms, но это должно быть возможно с вызовами WinApi.

    [DllImport("user32.dll", SetLastError = true)]
    private static extern IntPtr GetWindowDC(IntPtr hwnd);
    [DllImport("user32.dll", SetLastError = true)]
    private static extern int ReleaseDC(IntPtr hwnd, IntPtr hdc);

    protected override void WndProc(ref Message m)
    {
        IntPtr result = IntPtr.Zero;
        bool callDWP = !Win32Interop.DwmDefWindowProc(m.HWnd, m.Msg, m.WParam, m.LParam, out result);
        switch (m.Msg)
        {
            case Win32Messages.WM_NCPAINT:
                IntPtr hdc = GetWindowDC(m.HWnd); 
                if ((int)hdc != 0) 
                { 
                    Graphics g = Graphics.FromHdc(hdc); 
                    g.DrawImage(Resources.Logo, new Point(0, 0));
                    ReleaseDC(m.HWnd, hdc); 
                } 
            break;
        }

        m.Result = result;
        if (callDWP)
        {
            base.WndProc(ref m);
        }
    }

Изображение не отображается. Что я делаю не так?

...