16,467
社区成员
发帖
与我相关
我的任务
分享
//告警子框架窗口的创建
void CDrawYunApp::WarnData()
{
CWarnDoc * doc = new CWarnDoc(_T("报警提示"));
//CWarnFrm * frm = new CWarnFrm;
CFrameWnd* wnd = pWarnDocTemplate->CreateNewFrame(doc,NULL);//是子框架窗口开始创建的起点
if (wnd)
{
pWarnDocTemplate->InitialUpdateFrame(wnd,doc,TRUE);//会调用CWarnView::OnInitialUpdate(),没这句告警窗口不弹
}
}
// 注册应用程序的文档模板。文档模板
// 将用作文档、框架窗口和视图之间的连接
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_DrawYunTYPE,
RUNTIME_CLASS(CDrawYunDoc),
RUNTIME_CLASS(CSplitFrame), // 自定义 MDI 子框架class CSplitFrame : public CMDIChildWndEx
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(CWarnFrm), //class CWarnFrm : public CMDIChildWndEx
RUNTIME_CLASS(CWarnView));
if (!pWarnDocTemplate)
return FALSE;
pDocTemplate->SetContainerInfo(IDR_DrawYunTYPE_CNTR_IP);//调用此函数在OLE对象被内部激活时设置所使用的资源。
//创建告警对话框
void CDrawYunApp::WarnData()
{
CWarnDlg *warnDlg = new CWarnDlg;
warnDlg->Create(IDD_WARN_SHOW,0);
}
//告警对话框初始化
BOOL CWarnDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
CMainFrame* pMW=(CMainFrame*)AfxGetApp()->m_pMainWnd;
pMW->WarnHwnd= (*this).m_hWnd;
ListCount=0;
// TODO: Add your specialized code here and/or call the base class
CListCtrl& m_list =m_List;//m_List:CListCtrl m_List;DDX_Control(pDX, IDC_LIST, m_List);
LONG lStyle;
lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口风格
lStyle &= ~LVS_TYPEMASK; //清除显示方式位
lStyle |= LVS_REPORT; //设置报表风格
//cs.style &=~WS_CHILD;//清除窗口的子窗口形式
//cs.style =WS_POPUP;//设置窗口为主窗口
SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle); //设置窗口风格
DWORD dwStyle = m_list.GetExtendedStyle();//得到当前的列表视图控件扩展的样式
//选中某行使整行高亮(只适用于报表风格的listctrl)
dwStyle |= LVS_EX_FULLROWSELECT;
dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与报表风格的listctrl)
m_list.SetExtendedStyle(dwStyle); //设置扩展风格
m_list.SetBkColor(RGB(200, 200, 200)); //设置背景颜色
m_list.SetTextBkColor(RGB(200, 200, 200)); //设置文本背景颜色
m_list.SetTextColor(RGB(10, 10, 80)); //设置文本颜色
//插入列的标题,为了简单起见,我只插入三列
m_list.InsertColumn( 0, _T("序号"), LVCFMT_CENTER, 40 );
m_list.InsertColumn( 1, _T("装置名称"), LVCFMT_CENTER, 150 );//第三个参数为宽度,单位为像素
m_list.InsertColumn( 2, _T("类型"), LVCFMT_CENTER, 110 );
m_list.InsertColumn( 3, _T("系统时间"), LVCFMT_CENTER, 220 );
m_list.InsertColumn( 4, _T("描述"), LVCFMT_CENTER, 330 );
//int i=SetWindowPos(&wndTopMost,100,200,0,0,SWP_NOSIZE);//使告警窗口置最前
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}