如何使用 CWindowImpl 类创建新窗口
how to create a new window using the CWindowImpl class
im 尝试使用以下类构建一个新窗口。但是,在尝试使用 CWindow::m_hwnd 变量获取新生成的窗口名称时,我遇到了一些严重的问题。我的猜测是我应该将一个变量传递给 CWindowImpl::Create() 函数,该函数保存我父母的 HWND,但我不知道如何获取它。
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 实现了以下接口:
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()解决了它
相关文章:
- 如何使用Qt在新窗口中显示视频帧
- Qt5 C++将新窗口与Qt设计器链接
- 在SFML(C++)中启动一个新窗口
- Qt将鼠标移动事件转移到新窗口
- 在Clion的新窗口中创建一个新项目
- 如何在Qt中打开新窗口的情况下更改UI?
- 朱奇 - 制作一个新窗口
- 设置 VLC drawable-hwnd 仍会创建一个新窗口
- 运行 SFML 图形后看不到新窗口
- 如何在Mac上打开Carbon中的C++新窗口
- 在Qt中单击QTableView中行的特定单元格时,打开一个新窗口
- 具有控制台输出且没有新窗口的 Win32 应用程序
- C++输出信息到新窗口
- qwebview,如何确定此链接是否为新窗口
- 离开全屏后,QVideOwidget是新窗口
- CreateProcess( ) 不会创建一个带有CREATE_NEW_CONSOLE标志的新窗口 - C/C++
- Qt正在设置新窗口
- 使用SW_HIDE样式使浏览器打开新窗口
- 从窗口 QT 打开新窗口
- C++ WinApi 绘制图像.jpg到新窗口