Получение дескриптора окна в C#

Из [expr.delete] / 3 в стандарте C ++ 17 (хотя это правило восходит к C ++ 11 и, возможно, к более раннему, но у меня нет этой спецификации под рукой) :

, если статический тип удаляемого объекта отличается от его динамического типа, статический тип должен быть базовым классом динамического типа удаляемого объекта, а статический тип должен иметь виртуальный деструктор или поведение не определено.

blockquote>

Динамический тип объекта, на который указывает объект, - uint32_t. Тип указателя - char. Это не одно и то же, и char не является базовым классом uint32_t, поэтому поведение не определено.

24
задан Steve Greatrex 16 April 2012 в 11:14
поделиться

3 ответа

В OnInitialized метод еще не был создан дескриптор . Но Вы на правильном пути. При помещении вызова в Loaded событие , дескриптор будет создан, и это должно возвратить корректное дескриптор .

26
ответ дан SliverNinja - MSFT 28 November 2019 в 23:59
поделиться
 [DllImport("user32.dll", EntryPoint = "FindWindowEx")]
        public static extern int FindWindowEx(int hwndParent, int hwndEnfant, int lpClasse, string lpTitre);


int hwnd = FindWindowEx(0, 0, 0, title);//where title is the windowtitle

                //verification of the window
                if (hwnd == 0)
                {
                    throw new Exception("Window not found");
                }
0
ответ дан Mez 28 November 2019 в 23:59
поделиться

Самое раннее место, где вы можете получить дескриптор, это OnSourceInitialized

6
ответ дан Nir 28 November 2019 в 23:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: