20170315MFC04_树形控件富文本框

MFC:

1:MFC是windows下编程的基准,是所有桌面应用程序的鼻祖。

树形控件:

1:适合表示有层次的关系,就是有层次的节点。
2:原始操作:增删改查,树形控件的删除是所有子集全部删除,类似于文件夹的关系。
3:里面的数据使用list来进行承载的。插入等操作是非常快的。
4:LPWSTR:LPCTSTR:微软的命名规则:
L->long    P->point    C->const    T->template    str(字符串)    W->wchar(宽字节)  sz(char[])
5:注意选项:
    1:Has Line:一般设置成true
    2:Has Button:一般设置成true
    3:Always Show Selection:设置成true,当失去焦点的时候还会有被选中的状态。
void CTreeCtrlDemoDlg::OnBnClickedBtnAdd()
{
	// TODO:  在此添加控件通知处理程序代码
	CString strInput;
	GetDlgItemTextW(IDC_EDIT_INPUT, strInput);
	HTREEITEM hItem = m_tree.GetSelectedItem();//用来表示树形控件节点项的结构体
	if (!hItem)
		hItem = TVI_ROOT;//为获取到当前选择的节点,就默认这个节点为根节点
	TVINSERTSTRUCT ts = { 0 };
	ts.hParent = hItem;
	ts.item.pszText = (LPWSTR)(LPCTSTR)strInput;
	ts.item.mask = TVIF_TEXT;
	ts.hInsertAfter = TVI_LAST;
	
	HTREEITEM hnewItem = m_tree.InsertItem(&ts);//插入后返回就这个节点本身
	m_tree.SelectItem(hnewItem);//设置当前节点为选中
	m_tree.EnsureVisible(hnewItem);//设置确保显示。
}


void CTreeCtrlDemoDlg::OnBnClickedBtnDel()
{
	// TODO:  在此添加控件通知处理程序代码
	HTREEITEM hItem = m_tree.GetSelectedItem();
	if (!hItem)
		return;//未选择节点不执行删除
	HTREEITEM hParen = m_tree.GetParentItem(hItem);
	m_tree.DeleteItem(hItem);
	m_tree.SelectItem(hParen);
}


void CTreeCtrlDemoDlg::OnBnClickedBtnChange()
{
	// TODO:  在此添加控件通知处理程序代码
	HTREEITEM hItem = m_tree.GetSelectedItem();
	if (hItem)
	{
		CString strInput;
		GetDlgItemTextW(IDC_EDIT_INPUT, strInput);
		m_tree.SetItemText(hItem, strInput);
	}
}


void CTreeCtrlDemoDlg::OnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
	// TODO:  在此添加控件通知处理程序代码
	HTREEITEM hItem = m_tree.GetSelectedItem();
	if (hItem)
	{
		CString strInput = m_tree.GetItemText(hItem);
		SetDlgItemTextW(IDC_EDIT_INPUT, strInput);
	}
	*pResult = 0;
}

富文本框:

1:必须在RichEditDemo.cpp的初始化函数里面写上AfxInitRichEdit2();,这样才可以正常运行
void CRichEditDemoDlg::OnBnClickedBtnColor()//选择颜色的对话框
{
	// TODO:  在此添加控件通知处理程序代码
	CHARFORMAT cf = { 0 };
	cf.cbSize = sizeof(CHARFORMAT);
	m_edit.GetSelectionCharFormat(cf);
	CColorDialog color_dialog(cf.crTextColor);
	if (color_dialog.DoModal() == IDOK)
	{
		cf.crTextColor = color_dialog.GetColor();
		cf.dwMask = CFM_COLOR;
		cf.dwEffects = 0;//这个参数不能掉。
		m_edit.SetSelectionCharFormat(cf);
	}
}


void CRichEditDemoDlg::OnBnClickedBtnFont()//选择字体的对话框
{
	// TODO:  在此添加控件通知处理程序代码
	CHARFORMAT cf = { 0 };
	cf.cbSize = sizeof(CHARFORMAT);
	m_edit.GetSelectionCharFormat(cf);
	CFontDialog font_dialog(cf);
	if (font_dialog.DoModal() == IDOK)
	{
		font_dialog.GetCharFormat(cf);
		m_edit.SetSelectionCharFormat(cf);
	}
}

2:CHARFORMAT structure of MFC是Microsoft Foundation Classes (MFC)即微软类库中字符格式类的结构。结构中不可或缺的两个成员是dwMask和 dwEffects,前者是定义或设置字符的字体、颜色、粗体、斜体、下划线等属性值,后者则是相关属性的效果。





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值