首页 > 代码库 > 004 树形控件TreeCtrlDemo 超级文本框RictEditDemo

004 树形控件TreeCtrlDemo 超级文本框RictEditDemo

#树形控件TreeCtrlDemo 

  拖拽控件

技术分享

 

  修改ID名称 IDC_TREE

  添加变量名位 m_tree

  设置控件属性 Always Show Selection TRUE 

    指定总显示选定内容,即使空间没有焦点

  设置控件属性 Has Buttons TRUE

    在父项旁边显示加号 (+) 和 减号 (-) 按钮

  

  拖拽控件

技术分享

    编辑框控件 修改编辑框ID IDC_EDIT_INPUT

    3个按钮 ID分别设置为 IDC_BTN_ADD IDC_BTN_DEL IDC_BTN_MOD

 

 

 1 //增添
 2 void CTreeCtrlDemoDlg::OnBnClickedBtnAdd()
 3 {
 4     // TODO: 在此添加控件通知处理程序代码
 5     CString strInput;
 6     GetDlgItemTextW(IDC_EDIT_INPUT, strInput);
 7     HTREEITEM hItem = m_tree.GetSelectedItem();
 8     if (!hItem)
 9     {
10         hItem = TVI_ROOT;
11     }
12     TVINSERTSTRUCTW ts = { 0 };
13     ts.hParent = hItem;
14     ts.item.pszText = (LPWSTR)(LPCTSTR)strInput;
15                 // (LPWSTR) = WCHAR  wchar_t
16                 // (LPCTSTR) = LPCTSTR = CONST WCHAR  = wchar_t
17                 //typedef LPCWSTR PCTSTR, LPCTSTR;
18                 //typedef _Null_terminated_ WCHAR *NWPSTR, *LPWSTR, *PWSTR;
19                 //LPCTSTR  
20                     //char* 窄字符            ASCII
21                     // wchar_t* 宽字符集    UCICODE
22                     //比较常用 先转换位 指针
23                 //微软设计了很多类型。。。。会让投很晕 
24     ts.item.mask = TVIF_TEXT;
25     ts.hInsertAfter = TVI_LAST;
26 
27 
28     HTREEITEM hNewItem = m_tree.InsertItem(&ts);
29     m_tree.SelectItem(hNewItem);
30     m_tree.EnsureVisible(hNewItem);
31 
32 }
33 
34     //删除
35 void CTreeCtrlDemoDlg::OnBnClickedBtnDel()
36 {
37     HTREEITEM hItem = m_tree.GetSelectedItem();
38     if (!hItem)
39         return;
40     HTREEITEM hParen = m_tree.GetParentItem(hItem);
41 
42     m_tree.DeleteItem(hItem);
43     m_tree.SelectItem(hParen);
44     // TODO: 在此添加控件通知处理程序代码
45 }
46 
47     //修改
48 void CTreeCtrlDemoDlg::OnBnClickedBtnMod()
49 {
50     // TODO: 在此添加控件通知处理程序代码
51     HTREEITEM hItem = m_tree.GetSelectedItem();
52     if(hItem)
53     {
54         CString strInPut;
55         GetDlgItemTextW(IDC_EDIT_INPUT, strInPut);
56         m_tree.SetItemText(hItem, strInPut);
57     }
58 }
59   //响应消息 IDC_TREE  TVN_SELCHANGED消息
60     //选中的菜单 获取值并传入 编辑框种
61 void CTreeCtrlDemoDlg::OnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult)
62 {
63     LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
64     // TODO: 在此添加控件通知处理程序代码
65     HTREEITEM hItem = m_tree.GetSelectedItem();
66     if (hItem)
67     {
68         CString strInPut = m_tree.GetItemText(hItem);
69         SetDlgItemTextW(IDC_EDIT_INPUT, strInPut);
70     }
71 
72     *pResult = 0;
73 }

技术分享

 

技术分享

 

#超级文本框RictEditDemo

 

    拖拽控件

      Rich Edit 2.0 Control  设置ID  添加变量 

      两个Button 按钮 设置 ID  IDC_BTN_COLOR IDC_BIN_FONT

 

技术分享

 

    双击颜色按钮 增添响应代码

 1 void CRictEditDemoDlg::OnBnClickedBtnColor()
 2 {
 3     // TODO: 在此添加控件通知处理程序代码
 4     //颜色控件是拖不出来的需要自己新建
 5     CHARFORMAT cf = { 0 };
 6     cf.cbSize = sizeof(CHARFORMAT);
 7     CColorDialog color_dialog(cf.crTextColor);
 8     if (color_dialog.DoModal() == IDOK)
 9     {
10         cf.crTextColor = color_dialog.GetColor();
11         cf.dwMask = CFM_COLOR;
12         cf.dwEffects = 0;
13         m_edit.SetSelectionCharFormat(cf);
14     }
15 }

 

  双击字体按钮 增添响应代码

 1 void CRictEditDemoDlg::OnBnClickedBinFont()
 2 {
 3     // TODO: 在此添加控件通知处理程序代码
 4     CHARFORMAT cf = { 0 };
 5     cf.cbSize = sizeof(CHARFORMAT);
 6     m_edit.GetSelectionCharFormat(cf);
 7     CFontDialog font_dialog(cf);
 8     if (font_dialog.DoModal() == IDOK)
 9     {
10         font_dialog.GetCharFormat(cf);
11         m_edit.SetSelectionCharFormat(cf);
12     }

 

 

  工程文件下面增添 RichtEditDemo.cpp

1 BOOL CRictEditDemoApp::InitInstance()
2 {
3     //增添
4     AfxInitRichEdit2();
5 
6 }

 

技术分享

 

004 树形控件TreeCtrlDemo 超级文本框RictEditDemo