VC问题,把弹出窗口放到指定View

来源:百度知道 编辑:UC知道 时间:2024/06/10 18:32:28
我将单文档分成两部分,要求左边的Tree点击弹出窗口,窗口显示在右边的View里面。朋友建议把窗口的创建放到右边,并且用MoveWindow。
我用过MoveWindow,发现MoveWindow是按照我的电脑窗口坐标move的,然后我用GetClientRect(&rect);不提示错误,但运行就失败!
大家帮帮忙啊!谢谢了。好答案另有加分!
用ScreenToClient(m_rect);
调试的时候,指针就指这里来了。。。还是不行啊!
我要的效果如图,在透明的窗口左边是一个拆分的View
void CWnd::ScreenToClient(LPRECT lpRect) const
{
ASSERT(::IsWindow(m_hWnd));
::ScreenToClient(m_hWnd, (LPPOINT)lpRect);
::ScreenToClient(m_hWnd, ((LPPOINT)lpRect)+1);
if (GetExStyle() & WS_EX_LAYOUTRTL)
CRect::SwapLeftRight(lpRect);
}

没道理会出错 是否别的问题
电脑窗口坐标可以ScreenToClient变成客户坐标

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
this;
CWnd* pwnd = &m_wndSplitter;
if (!m_wndSplitter.CreateStatic(this, 1, 2))
return FALSE;
if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CDYLiShiView), CSize (300, 0), pContext))
return FALSE;

return m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CContentView), CSize (0, 0), pContext);
}
你在创建窗口分割的时候,把这两个窗口类的顺序换换不就行了?然后大小再自己调整调整!
----------------------------------------------
怎么没有反应啊?我说的对不对啊?