Диалоговое окно Windows не открывается - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь открыть диалоговое окно на компьютере Windows (с помощью провайдера учетных данных Windows), когда пользователь нажимает кнопку.Я попробовал приведенный ниже код, но диалоговое окно не открывается.у меня есть ресурс "IDD_DIALOG1" и метод обратного вызова "ChangePasswordProc".

HWND hwndOwner = nullptr;

:: DialogBox (HINST_THISDLL, MAKEINTRESOURCE (IDD_DIALOG1), ChangeWow 100), hwndOw5

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Чтобы создать любое окно из Credential Provider, сначала необходимо получить дескриптор родительского окна, вызвав OnCreatingWindow метод интерфейса ICredentialProviderCredentialEvents.

HRESULT OnCreatingWindow([out] HWND* phwndOwner);

Указатель на этот интерфейс предоставляется вашему провайдерувызывая Advise метод его ICredentialProviderCredential интерфейса:

HRESULT Advise([in] ICredentialProviderCredentialEvents* pcpce);

Посмотрите на эту запись .

0 голосов
/ 29 марта 2019

Я не писал в Windows GUI долгое время, но, возможно, попробую что-то вроде этого:

HWND dialog = ::DialogBox(HINST_THISDLL, MAKEINTRESOURCE(IDD_DIALOG1), hwndOwner,ChangePasswordProc);
ShowWindow(dialog, SW_SHOW);

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

...