Image.FromHbitmap(IntPtr hbitmap)
От: Аноним  
Дата: 17.11.10 12:30
Оценка:
Помогите пожалуйста.

Есть всем знакомый метод:
public static Bitmap System.Drawing.Image.FromHbitmap(IntPtr hbitmap)


где hbitmap это дескриптор точечного рисунка GDI.

Вопрос в следующем: что представляет из себя этот дескриптор(может есть какая нибудь структура на которую он указывает)?

Вопрос был вызван тем что если использовать следующею функцию для WPF:

        private static System.Windows.Media.Imaging.BitmapSource loadBitmap(System.Drawing.Bitmap source)
        {
            IntPtr ip = source.GetHbitmap();
            System.Windows.Media.Imaging.BitmapSource bs = null;
            try
            {
                bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip,
                   IntPtr.Zero, System.Windows.Int32Rect.Empty,
                   System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
            }
            finally
            {
                GDI32.DeleteDC(ip);
            }

            return bs;
        }


и попытаться отобразить скриншот рабочего стола, то отображаются только иконки и кнопки: закрыть, развернуть и свернуть, а все остальное — белый фон. В случае Image.FromHbitmap(IntPtr hbitmap) все отображается корректно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.