1.在控制条上创建控件
//以树型控件为例
//创建自定义控制条
if (!m_wndMyBar.Create(_T("我的控制条"),this,123))
{ TRACE0("Failed to create mybar/n"); return -1; }
m_wndMyBar.SetBarStyle(m_wndMyBar.GetBarStyle() | CBRS_TOOLTIPS |
CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
/////////////这一段代码创建树型控件////////////
if (!m_Tree.Create(WS_CHILD|WS_VISIBLE|
TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT,
CRect(0, 0, 0, 0), &m_wndMyBar, 100))
{
TRACE0("Failed to create instant bar child/n");
return -1;
}
m_Tree.ModifyStyleEx(0, WS_EX_CLIENTEDGE);
2.在工具条上创建控件
//以CStatic和CEdit为例子
首先在资源编辑器中为需要创建的资源新建两个工具格分别命名为ID_TEXT和ID_EDIT;
然后在主框件MainFrame.h文件中加上
#define ID_EDT WM_USER + 1000
#define ID_TXT ID_EDT + 1000
接着在MainFrame.cpp的OnCreate函数中工具条初始化以后加入以下代码
//获得位置
int index = 0;
RECT rect;
while(m_wndToolBar.GetItemID(index)!=ID_TEXT)
index++;
////设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBar.SetButtonInfo(index, ID_TEXT, TBBS_SEPARATOR, 80);
//设置位置
m_wndToolBar.GetItemRect(index, &rect);
rect.top+=5;
rect.bottom +=50;
if( !m_Static.Create("输入姓名: ",SS_LEFT,rect,&m_wndToolBar,ID_TXT ) )
{
TRACE0("Failed to create toolbar/n");
return -1; // fail to create
}
CFont* font=m_wndToolBar.GetFont();
m_Static.SetFont(font);
m_Static.ShowWindow(SW_SHOW);
//获得位置
index = 0;
rect ;
while(m_wndToolBar.GetItemID(index)!=ID_EDIT)
index++;
////设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBar.SetButtonInfo(index, ID_EDIT, TBBS_SEPARATOR, 100);
//设置位置
m_wndToolBar.GetItemRect(index, &rect);
rect.top+=1;
// rect.bottom ;
if( !m_Edit.Create(ES_LEFT,rect,&m_wndToolBar,ID_EDT) )
{
TRACE0("Failed to create toolbar/n");
return -1; // fail to create
}
m_Edit.SetFont(this->GetFont());
m_Edit.ShowWindow(SW_SHOW);
如此便在工具条上生成了CStatic和CEdit控件
3.树型控件节点的图标的例子(树型控件定义接问题1)
首先声明一个
CImageList m_ImageListTree;
之后
//初始化树形控件的图标
if( !m_ImageListTree.Create( IDB_FILE_TYPES, 17, 1, RGB( 255, 255, 255 ) ) )
TRACE( _T("Image list creation fault") );
m_Tree.SetImageList( &m_ImageListTree, TVSIL_NORMAL );
////往树型控件添加内容///
m_hRoot= m_Tree.InsertItem(_T("共享联系人"),1,0);
4.树型控件的节点有两个可存储的属性
(1).节点的Text---存储节点显示的文字
(2).节点的data---存储节点的唯一标识,如文件的路径等等
5.文档模板以及文档模板管理器
CWinApp的对象一般包含m_pDocManager属性,即文档管理器。可以通过
pApp->m_pDocManager->GetFirstDocTemplatePosition();
遍历文档模板的例子
POSITION pos;
CString m_sDocString;
CProjectTemplate* pTemplate;
CProjectDoc* pDoc;
CWinApp* pApp=AfxGetApp();
//遍历文档模板,找到与扩展名相对应的模板
pos=pApp->m_pDocManager->GetFirstDocTemplatePosition();
while(pos)
{
pTemplate=(CProjectTemplate*)pApp->GetNextDocTemplate(pos);
m_sDocString=pTemplate->GetDocStrings();
//找到对应的模板后调用OpenDocumentFile函数创建文文档
if( m_sDocString.Find(".doc",0)!=-1 && b_DocFind==FALSE )
{
pDoc=(CProjectDoc*)pTemplate->OpenDocumentFile(NULL);
//创建文档以后调用OnSavaDocument存储文档并创建文件
pDoc->OnSaveDocument(filepath);
}
}
以上均需要包含sizecbar.cpp,sizecbar.h,scbarg.h,scbarg.cpp文件,有关这四个文件的详细信息可搜索一下~~,主要是一些前人编的界面友好的控件