关于网友提出的“ MFC在自定义的类中如何获取视图窗口的句柄”问题疑问,本网通过在网上对“ MFC在自定义的类中如何获取视图窗口的句柄”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: MFC在自定义的类中如何获取视图窗口的句柄
描述:mfc
HWND hwnd;
CWnd *pWnd;
pWnd = ((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
hwnd = pWnd->GetDlgItem(IDD_CURRENT_CALL)->GetSafeHwnd();
我这样写,获得的hwnd是空的,是不是写的有问题!
解决方案1: 构造这个类时可以将视图窗口句柄保存到这个类中
解决方案2: 补充:如果是你的类对象包含窗口类,那直接在窗口类中把句柄暴露出去;如果是窗口类包含你的类对象,那可以把窗口类的句柄做为构造函数的参数传进你的类对象中,或者通过方法都可以;如果没有两个对象没有什么关系那么就可以使用消息传送。
解决方案3: ((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();返回的应该是CView*啊,再说了如果想在自己创建的类获取到windows的句柄那可以想要哪个windows的句柄就把哪个windows的句柄传给你的类对象就行了,可以通过函数或消息机制。
解决方案4: 注意:
GetActiveView()前先SetActiveView
BOOL CMainFrame::OnCreateClient中
SetActiveView(CXXView);
以上介绍了“ MFC在自定义的类中如何获取视图窗口的句柄”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2194099.html