c++ - Windows 对话框打不开
问题描述
当用户按下按钮时,我试图在 Windows 机器中打开一个对话框(使用 Windows 凭据提供程序)。我尝试了下面的代码,但是没有打开对话框。我有一个资源“IDD_DIALOG1”和回调方法“ChangePasswordProc”。
HWND hwndOwner = nullptr;
::DialogBox(HINST_THISDLL, MAKEINTRESOURCE(IDD_DIALOG1), hwndOwner,ChangePasswordProc);
解决方案
要从内部创建任何窗口,Credential Provider
必须首先通过调用接口OnCreatingWindow
方法获取父窗口句柄ICredentialProviderCredentialEvents
。
HRESULT OnCreatingWindow([out] HWND* phwndOwner);
指向此接口的指针通过调用 Advise
其ICredentialProviderCredential
接口的方法提供给您的提供者:
HRESULT Advise([in] ICredentialProviderCredentialEvents* pcpce);
看看这个帖子。
推荐阅读
- angular - 子路由的角度路由问题
- regex - 找不到特定的正则表达式
- ruby-on-rails - PG::ConnectionBad with rails 和 pgbouncer
- javascript - 在 GET 请求中调用 POST 请求时连接 ECONNREFUSED 127.0.0.1:443
- angular - 在使用代理到后端的本地 PC 上下载文件时连接被拒绝
- paperjs - 在一组重叠的对象中查找被点击的对象
- c# - 如何修复“无法删除目录 'Shared'。访问路径 'obj\Debug\netcoreapp2.1\Razor\Pages\Shared' 被拒绝”
- python - 以编程方式在 Abaqus 中创建节点集(python 脚本)
- antd - 嵌套表行中的不同行数据
- java - Java中的XPath查询不返回任何元素