gpt4 book ai didi

c++ - 如何使用 CWindowImpl 类创建新窗口

转载 作者:太空宇宙 更新时间:2023-11-04 12:09:30 32 4
gpt4 key购买 nike

我正在尝试使用以下类构建一个新窗口。但是我在尝试使用 CWindow::m_hwnd 变量获取新生成的窗口名称时遇到了一些严重的问题。我的猜测是我应该将一个变量传递给保存我 parent 的 HWND 的 CWindowImpl::Create() 函数,但我不知道如何获取它。

STDMETHODIMP CVMNExporter::SetSite(IUnknown *pUnkSite) {
HRESULT hr;
if(FAILED(hr = ATL::IObjectWithSiteImpl<CVMNExporter>::SetSite(pUnkSite)))
return hr;
// We are rnning from a web browser
CONNECTION_CALLBACK = JSCRIPT_DISPID;
EXPORTING_CALLBACK = JSCRIPT_DISPID;
MERGING_CALLBACK = JSCRIPT_DISPID;
ABORTING_CALLBACK = JSCRIPT_DISPID;

AddRef();
if(NULL == Create(0)) {// Creates the hidden window
Release();
return HRESULT_FROM_WIN32(GetLastError());
}
ATLTRACE("TEST - SetSite(): this: %d, window: %d", this, m_hWnd);
m_dwApartmentMode = HWND_APARTMENT;
SendMessage(WM_EXPORTER_APARTMENT_SETUP, 0, 0);
return S_OK; }

CVMNExporter 实现了以下接口(interface):

        public ATL::IObjectSafetyImpl<CVMNExporter, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA>,
public ATL::IObjectWithSiteImpl<CVMNExporter>,
public ATL::CWindowImpl<CVMNExporter, ATL::CWindow, ATL::CFrameWinTraits>,

谢谢!

最佳答案

我花了一些时间,但设法通过使用 GetActiveWindow() 解决了它

关于c++ - 如何使用 CWindowImpl 类创建新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10469010/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com