vc网络视频会议系统设计(需求分析+总体设计+系统设计+参考文献) 第4页
CRect rect1(m_rect);
rect1.DeflateRect(2,10,2,5);
pdc->Draw3dRect(&rect1,RGB(64,0,128),RGB(255,255,255));
break;
}
default:
{
CRect c_rect (m_rect);
DrawBKColor(pdc,c_rect,m_State&ODS_SELECTED);
DrawText(pdc,m_rect,m_text);
DrawMenuIcon(pdc, m_imageid,m_rect,true);
break;
}
}
}
}
(8)在框架类中定义一个CMyMenu变量m_menu,处理框架的WM_DRAWITEM、WM_MEASUREITEM消息,代码如下:
void CMainFrame::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
m_menu.MeasureItem(lpMeasureItemStruct);
}
void CMainFrame::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
m_menu.DrawItem(lpDrawItemStruct);
}
2.工具栏设计
默认情况下,在文档\视图结构中MFC应用程序向导会创建一个工具栏。该工具栏是一个普通的工具栏,背景不能够显示图像,为此,笔者修改了该工具栏,使其背景透明,效果如图7所示。
图7 工具栏效果图
MFC提供的工具栏类CToolBar,背景不能显示图像,因此笔者又添加了一个CReBar对象m_rebar,CReBar能够作为工具栏的容器,并且可以设置背景图像,如果将工具栏放置在CReBar控件中,并将工具栏设置为透明效果,这样,工具栏不就可以显示图像背景了吗?
工具栏除了显示背景图像外,还应显示工具栏按钮图标。可以在程序中定义一个CImageList控件,通过该控件添加一组图标,调用工具栏的“GetToolBarCtrl().SetHotImageList()”方法设置图像列表。
工具栏创建过程代码如下:
if (!m_wndToolBar.CreateEx(this,WS_CHILD| CBRS_TOOLTIPS|CBRS_FLOATING| WS_VISIBLE |
CBRS_ALIGN_TOP|TBSTYLE_FLAT))
{
TRACE0("Failed to create toolbar\n");
return -1;
}
m_wndToolBar.SetButtons(NULL,13);
int 毕业论文
http://www.youerw.com/ 论文网
http://www.youerw.com/ {
if ((m+1) % 3 ==0)
m_wndToolBar.SetButtonStyle(m,TBBS_SEPARATOR);
else
{
m_wndToolBar.SetButtonInfo(m,ID_Set_disPlay+record,TBBS_BUTTON,record);
menutext.LoadString(ID_Set_disPlay1+record);
record+=1;
c_temp=menutext.GetBuffer(menutext.GetLength()+1);
c_temp[menutext.GetLength()+1]='\n';
m_wndToolBar.SetButtonText(m,c_temp);
}
}
m_wndToolBar.GetToolBarCtrl().SetButtonSize(CSize(60,55));//设置工具栏按钮大小
//m_wndToolBar.GetToolBarCtrl().SetButtonWidth(30,60);
m_toolimages.Create(28,28,ILC_COLOR16|ILC_MASK,0,0);//创建图像列表
//加载图像列表
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON2));//向图像列表中添加图标
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON7));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON8));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON9));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON10));
m_wndToolBar.GetToolBarCtrl().SetHotImageList(&m_toolimages);//设置工具栏的热点图标
m_toolimages.Detach();
//创建工具栏图像列表
m_toolimages.Create(32,32,ILC_COLOR32|ILC_MASK,1,1);
//加载图像列表
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON7));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON8));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON9));
m_toolimages.Add(AfxGetApp()->LoadIcon(IDI_ICON10));
m_wndToolBar.GetToolBarCtrl().SetImageList(&m_toolimages);//设置工具栏按钮的图标
m_toolimages.Detach();
m_rebar.Create(this);
m_rebar.AddBar(&m_wndToolBar);
REBARBANDINFO barinfo;
barinfo.cbSize = sizeof(barinfo);
barinfo.fMask = RBBIM_BACKGROUND;
m_wndToolBar.ModifyStyle( 0,TBSTYLE_TRANSPARENT);//将工具栏设置为透明效果
barinfo.hbmBack = ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP4));
m_rebar.GetReBarCtrl().SetBandInfo(0,&barinfo);
3.客户区设计
会议视频管理系统的客户区域由树视图和普通视图两部分组成。在树视图中列出了系统中的常用功能,用户可以双击节点打开各功能模块。为实现该功能,笔者自定义了一个树视图类CCustomTree,该类派生于CTreeView。
CCustomTree类设计步骤如下:
(1)通过工作区创建一个类,名称为CCustomTree,父类为CTreeView。
(2)在CCustomTree类中定义3个成员变量,如下:
CStringArray m_Treenodes;//记录节点文本
CImageList m_imagelist; //图像列表
CFont m_font; //控件字体
(3)在OnInitialUpdate方法中创建图像列表,添加图标,创建和设置字体,修改树视图风格,添加节点。代码如下:
void CCustomTree::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
m_imagelist.Create(16,16,ILC_COLOR24|ILC_MASK,5,5);
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页
vc网络视频会议系统设计(需求分析+总体设计+系统设计+参考文献) 第4页下载如图片无法显示或论文不完整,请联系qq752018766