窗口对话框未打开



当用户按下按钮时,我试图在Windows机器(使用Windows凭据提供程序(中打开对话框。 我尝试了下面的代码,但是对话框没有打开。 我有一个资源"IDD_DIALOG1"和回调方法"ChangePasswordProc"。

HWND hwndOwner = nullptr;

::D ialogBox(HINST_THISDLL, MAKEINTRESOURCE(IDD_DIALOG1(, hwndOwner,ChangePasswordProc(;

我已经有

一段时间没有用Windows GUI编写了,但也许可以尝试这样的事情:

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

我记得,创建窗口并不意味着显示它 - 它必须明确完成。

要从Credential Provider内部创建任何窗口,您必须首先通过调用ICredentialProviderCredentialEvents接口的方法获取父窗口句柄OnCreatingWindow

HRESULT OnCreatingWindow([out] HWND* phwndOwner);

指向此接口的指针通过调用其ICredentialProviderCredential接口Advise方法提供给提供程序:

HRESULT Advise([in] ICredentialProviderCredentialEvents* pcpce);

看看这篇文章。

最新更新