子窗口置顶和子窗口设置大小 多文档-SetWindowPos()无效,

asdjy123 asdjy123 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我想实现的共能:在程序运行时有个子窗口A(主窗口),在达到移动条件时会自动的创建一个子窗口B(名称为"报警提示"),并在子窗口B中显示内容。
现在的问题有两个:
1、在子窗口A为最大化时,创建生成的子窗口B也会自动变成最大化,但我要的是是子窗口B不是最大化显示。
2、在子窗口A把子窗口B覆盖的情况下,在达到一定条件时(向B添加内容),窗口B不会显示在最上面窗口。
经过好几天的查找和测试在使用SetWindowPos()和MoveWindow()都无效,求大神指点
主要代码如下:
DrawYun.cpp:

// CDrawYunApp 初始化
BOOL CDrawYunApp::InitInstance()
{
............
............
// 注册应用程序的文档模板。文档模板
// 将用作文档、框架窗口和视图之间的连接 (这块创建工程时自带)
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_DrawYunTYPE,
RUNTIME_CLASS(CDrawYunDoc),
RUNTIME_CLASS(CSplitFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CDrawYunView));
if (!pDocTemplate)
return FALSE;
pDocTemplate->SetContainerInfo(IDR_DrawYunTYPE_CNTR_IP);//调用此函数在OLE对象被内部激活时设置所使用的资源。
AddDocTemplate(pDocTemplate);//调用这个成员函数,将文档模板加入应用程序维护的可用文档模板列表中。你可以在调用RegisterShellFileTypes之前加入所有的文档模板。

// 注册应用程序的文档模板。文档模板
//将用作告警文档、框架窗口和告警视图之间的连接
pWarnDocTemplate = new CMultiDocTemplate(IDR_DrawYunTYPE,
RUNTIME_CLASS(CWarnDoc),//告警窗口文档类
RUNTIME_CLASS(CSplitFrame),
RUNTIME_CLASS(CWarnView));//告警窗口视图类
if (!pWarnDocTemplate)
return FALSE;
pDocTemplate->SetContainerInfo(IDR_DrawYunTYPE_CNTR_IP);//调用此函数在OLE对象被内部激活时设置所使用的资源。

return TRUE;
}

达到条件消息响应函数:
LRESULT CWarnView::DemoData(WPARAM wParam,LPARAM lParam)
{
CMainFrame* pMW=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CWnd *pwnd = FindWindow(NULL,_T("报警提示"));
int i=SetWindowPos(&CWnd::wndTopMost,0,0,50,100,SWP_NOMOVE|SWP_SHOWWINDOW);//使告警窗口置最前, 调试时显示i不为0,因该调用成功了,为什么没效果
//上面一句如果换成int i=pwnd->SetWindowPos(&CWnd::wndTopMost,0,0,50,100,SWP_NOMOVE|SWP_SHOWWINDOW);会出现错误,调试发现pwnd的值为0x000000,怎么什么情况

if (i==0)
return false;
else
return true;
}

如果在::SendMessage(pMW->WarnHwnd,WM_DEMO_DATA,(WPARAM)0,(LPARAM)OrderValue);后面使用SetWindowPos()等改变子窗口B的大小和置顶也同样无效,怎么什么情况,求大神指点

还有不知自己建立一个子框架类,在里面进行设置是否可行,比如
pWarnDocTemplate = new CMultiDocTemplate(IDR_DrawYunTYPE,
RUNTIME_CLASS(CWarnDoc),//告警窗口文档类
RUNTIME_CLASS(CSplitFrame),
RUNTIME_CLASS(CWarnView));//告警窗口视图类
换成
pWarnDocTemplate = new CMultiDocTemplate(IDR_DrawYunTYPE,
RUNTIME_CLASS(CWarnDoc),//告警窗口文档类
RUNTIME_CLASS(CWarnFrame),//告警窗口子框架文档
RUNTIME_CLASS(CWarnView));//告警窗口视图类


请各位大神指点:已经搞了好几天的还没解决,在线等。。在此先谢了
...全文

相关推荐

评论 20
收藏 已收藏
分享
返回顶部
asdjy123
界面 15,976 成员 115,866 内容