• 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 }

  • 相关阅读:
    【BZOJ 1069】【SCOI 2007】最大土地面积 凸包+旋转卡壳
    【POJ 2187】Beauty Contest 凸包+旋转卡壳
    1056: [HAOI2008]排名系统
    1874: [BeiJing2009 WinterCamp]取石子游戏
    1055: [HAOI2008]玩具取名
    2338: [HNOI2011]数矩形
    1060: [ZJOI2007]时态同步
    1054: [HAOI2008]移动玩具
    1053: [HAOI2007]反素数ant
    1052: [HAOI2007]覆盖问题
  • 原文地址:https://www.cnblogs.com/sdk123/p/6834543.html
Copyright © 2020-2023  润新知