《精通Visual C++ 实效编程280例》读书笔记(第二章 菜单和光标)

1、动态加载、删除菜单:

      void CMainFrame::OnAppendMenu() 
      {
           //TODO: Add your command handler code here
           Menu* pMenu = GetMenu();
           Menu* pSunMenu = pMenu->GetSubMenu(4);
           if (pSunMenu->GetMenuItemCount() == 4)
           {
                  pSunMenu->AppendMenu(MF_STRING,ID_TEST_MENU,"新菜单项");
                  DrawMenuBar();
            }
      }

      void CMainFrame::OnDeleteMenu()
      {
            // TODO: Add your command handler code here
            CMenu* pMenu = GetMenu();
            CMenu* pSubMenu = pMenu->GetSubMenu(4);
            if (pSubMenu->GetMenuItemCount() == 5)
            {
                 pSubMenu->DeleteMenu(4,MF_BYPOSITION);
                 DrawMenuBar();
            }
      }

      void CMainFrame::OnInsertMenu()
      {
            // TODO: Add your command handler code here
           CMenu* pMenu = GetMenu();
           CMenu* pSubMenu = pMenu->GetSubMenu(4);
           if (pSubMenu->GetMenuItemCount() == 4)
           {
                 pSubMenu->InsertMenu(4,MF_BYPOSITION,ID_TEST_MENU,"新菜单项");
                 DrawMenuBar();
            }
      }

      void CMainFrame::OnRemoveMenu()
       {
             // TODO: Add your command handler code here
             CMenu* pMenu = GetMenu();
             CMenu* pSubMenu = pMenu->GetSubMenu(4);
             if (pSubMenu->GetMenuItemCount() == 5)
             {
                    pSubMenu->RemoveMenu(4,MF_BYPOSITION);
                    DrawMenuBar();
              }
        }

2、显示沙漏图标:

      void CWaitCursorTestView::OnLButtonDown(UINT nFlags, CPoint point)
      {
             // TODO: Add your message handler code here and/or call default
            BeginWaitCursor();
            Sleep(5000);
            EndWaitCursor();
            CView::OnLButtonDown(nFlags, point);
       }

3、设置系统菜单

      OnInitDialog():

        CMenu* pMenu = GetSystemMenu(FALSE);
        pMenu->RemoveMenu(SC_MOVE,MF_STRING);
        pMenu->InsertMenu(0,MF_BYPOSITION,ID_TEST_MENU,"测试菜单项");
        DrawMenuBar();

       void CMenuTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
       {
            if ((nID & 0xFFF0) == IDM_ABOUTBOX)
            {
                   CAboutDlg dlgAbout;
                   dlgAbout.DoModal();
             }
             else if (nID == ID_TEST_MENU)
             {
                    AfxMessageBox("测试菜单项命令");
             }
             else
             {
                   CDialog::OnSysCommand(nID, lParam);
             }
        }

第二章内容本较少,比较简单的如EnableMenuItem()等,没有写出。至此第二章结束,接下来是第三章:控制栏。

         

第1章 窗口 1.1 实1:通过HWND获得CWnd指针 1.2 实2:获得应用程序主窗口的指针 1.3 实3:获得指定点的窗口 1.4 实4:最大化和最小化窗口 1.5 实5:关闭窗口 1.6 实6:设置窗口的大小和位置 1.7 实7:居中显示窗口 1.8 实8:顶层显示窗口 1.9 实9:设置窗口图标 1.10 实10:获得和设置窗口的标题 1.11 实11:显示或隐藏窗口的标题栏 1.12 实12:改变窗口形状 1.13 实13:设置窗口的透明区域 1.14 实14:透明窗口 1.15 实15:窗口闪烁 1.16 实16:图片窗口 1.17 实17:动画窗口 1.18 实18:桌面窗口 1.19 实19:最小化桌面所有窗口 1.20 实20:获取任务栏窗口 1.21 实21:显示或隐藏任务栏 1.22 实22:枚举桌面所有顶层窗口 第2章 菜单光标 2.1 实23:动态添加和删除菜单项 2.2 实24:在系统菜单中添加和删除菜单项 2.3 实25:禁用关闭按钮 2.4 实26:启用和禁用菜单项 2.5 实27:设置菜单项的检查状态 2.6 实28:快捷菜单 2.7 实29:获取光标的坐标 2.8 实30:限制光标的移动范围 2.9 实31:自定义光标 2.10 实32:等待光标 第3章 控制栏 3.1 实33:创建工具栏 3.2 实34:设置工具栏标题 3.3 实35:停靠工具栏 3.4 实36:设置工具栏位图 3.5 实37:为工具栏按钮添加文本标签 3.6 实38:为工具栏按钮添加下拉箭头 3.7 实39:为工具栏按钮设置热点图像 3.8 实40:启用或禁用工具栏的工具提示 3.9 实41:在工具栏中添加组合框 3.10 实42:创建状态栏 3.11 实43:在状态栏中添加进度条 3.12 实44:显示或隐藏工具栏和状态栏 3.13 实45:使用组合栏 第4章 对话框 4.1 实46.创建模式对话框 4.2 实47:创建非模式对话框 4.3 实48:关闭模式对话框 4.4 实49:关闭非模式对话框 4.5 实50:在模式对话框中使用OK和Cancel按钮 4.6 实51:在非模式对话框中使用OK和Cancel按钮 4.7 实52:在对话框中添加最大化和最小化按钮 4.8 实53:使基于对话框的程序不在任务栏中显示 4.9 实54:使对话框大小可调整 4.10 实55:居中显示对话框 4.11 实56:不显示对话框 4.12 实57;全屏显示对话框 4.13 实58:改变对话框的背景颜色 4.14 实59:改变对话框中控件的颜色 4.15 实60:在对话框中输出文本 4.16 实61:在对话框中加载菜单 4.17 实62:在对话框中加载工具栏 4.18 实63:在对话框中加载视图 4.19 实64:使用Enter键控制对话框中控件的输入焦点 4.20 实65:屏蔽对话框按Esc或Enter键退出 4.21 实66.设置应用程序中对话框的默认颜色 4.22 实67:创建消息对话框 4.23 实68:实现对话框在桌面工作区的停靠 4.24 实69:在客户区中移动对话框 第5章 框架和文档视图 5.1 实70:禁止框架窗口在标题中显示文档名 5.2 实71:设置文档的标题 5.3 实72-设置框架窗口的标题 5.4 实73:设置主框架窗口初始时大小 5.5 实74:设置MDI子框架窗口初始时大小 5.6 实75:最小化框架窗口 5.7 实76:设置框架窗口最大化时的大小和位置 5.8 实77:保存或恢复框架窗口的状态 5.9 实78:删除SDI框架窗口中的菜单 5.10 实79:删除MDI框架窗口中的菜单 5.11 实80:改变视图的背景颜色 5.12 实81:改变MDI主框架窗口的背景颜色 5.13 实82:使MDI启动时不生成新的子窗口 5.14 实83:排列MDI子框架窗口 5.15 实84:在SDI中切换多视图 5.16 实85:在SDI中动态切分窗口 5.17 实86:在SDI中静态切分窗口 5.18 实87:滚动视图的使用 5.19 实88:列表视图的使用 5.20 实89:树视图的使用 5.21 实90:HTMI视图的使用 5.22 实91:在视图中获得文档指针 5.23 实92:在框架中获得当前视图指针 5.24 实93:新建或打开文档 5.25 实94:创建新的框架窗口 5.26 实95:实现单文档-多视图结构 5.27 实96:在应用程序中遍历文档模板 5.28 实97:在文档中遍历视图 第16章 通用控件 6.1 实98:通过控件ID获取控件窗口指针 6.2 实99:通过控件窗口指针获取控件ID 6.3 实100:获取指定点的控件指针 6.4 实101:遍历控件 6.5 实102:根据父窗口的大小改变控件的大小和位置 6.6 实103:显示或隐藏控件 6.7 实104:启用或禁用控件 6.8 实105:改变控件的颜色 6.9 实106:设置控件的焦点 6.10 实107:为控件添加工具提示 6.11 实108:在编辑框中追加文本 6.12 实109:在编辑框中实现多行显示 6.13 实110:限制编辑框输入文本的长度 6.14 实111:限制编辑框只能输入数字 6.15 实112:将编辑框中输入的字符转换为大写(小写) 6.16 实113:在按钮上显示图标 6.17 实114:实现位图按钮 6.18 实115:设置和获取单选按钮的选中状态 6.19 实116:设置和获取一组单选按钮的选中状态 6.20 实117:组合框的使用 6.21 实118:实现带自动完成功能的组合框 6.22 实119:设置组合框中列表框的宽度 6.23 实120:在组合框中显示文件列表 6.24 实121:在列表框中添加水平滚动条 6.25 实122:进度条的使用 6.26 实123:滑块的使用 6.27 实124:旋转按钮的使用 6.28 实125:在列表控件中插入列 6.29 实126:设置列表控件的显示方式 6.30 实127:设置列表控件的背景图片 6.31 实128:在列表控件中整行选中 6.32 实129:在列表控件中显示网格线 6.33 实130:在列表控件中使用复选框 6.34 实131:在列表控件中排序表项 6.35 实132:在树控件中插入项 6.36 实133:在树控件中添加连线和按钮 6.37 实134:从树控件中删除项. 6.38 实135:展开和选择树提件项 6.39 实136:设置树控件中项的图像 6.40 实137:遍历树控件 6.41 实138:如何使用标签控件 6.42 实139:日期时间控件的使用 6.43 实140:显示RichEdit控件 第7章 GDI 7.1 实141:通过HDC获取CDC指针 7.2 实142:创建屏幕DC 7.3 实143:选择预定义的GDI对象 7.4 实144:获取文本的长度和高度 7.5 实145:在长文本末端显示省略号 7.6 实146:设置文本的对齐方式 7.7 实147:设置背景模式 7.8 实148:绘制图形 7.9 实149:画笔的使用 7.10 实150:字体的使用 7.11 实151:实现“橡皮筋”功能 7.12 实152:显示位图资源 7.13 实153:显示位图文件 7.14 实154:用桌面背景填充指定区域 7.15 实155:坐标映射 7.16 实156:获取其他程序的图标 第8章 文件 8.1 实157:获取或设置文件的属性 8.2 实158:获取文件的信息 8.3 实159:实现文件夹对话框 8.4 实160:在列表框或组合框中显示文件和目录列表 8.5 实161:复制文件 8.6 实162:移动文件 8.7 实163:删除文件 8.8 实164:重命名文件 8.9 实165:查找文件 8.10 实166:使用Shell操作文件 8.11 实167:获取应用程序的目录 8.12 实168:获取或设置进程的当前目录 8.13 实169:获取Windows目录和System目录 8.14 实170:创建临时文件 8.15 实171:创建目录 8.16 实172:删除目录 8.17 实173:逐行读取文本文件 8.18 实174:在INI文件中读写数据 8.19 实175:获取INI文件的全部段名 8.20 实176:获取INI文件指定段的全部键名和键值 第9章 打印 9.1 实177:通过打印对话框 …… 第10章 多线程 第11章 网络 第12章 ADO数据库 第13章 动态链接库 第14章 系统 第15章 设备管理 第16章 数据类型及转换 ......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值