VC++设计简易计算器笔记(二)

简介:
3、学会制作高级编辑控件,可以指定文本文件的字体和颜色。
   首先,创建一个高级编辑控件类CAdvEdit,其父类为CEdit。主要包含三个函数,消息函数
OnPaint(),成员函数OnDraw()和OnDisplay(LPCSTR lpszStr)。
   在OnPaint()的消息函数中调用成员函数OnDraw()来绘制编辑控件客户区。而在OnDisplay(LPCSTR
lpszStr)函数中将要显示的文本内容lpszStr赋给成员变量m_Caption。
   void CAdvEdit::OnDraw()      //绘制编辑控件客户区
   { 
       CRect rect;
       GetWindowRect(&rect);
       CDC *pDC=GetDC();         //得到编辑控件设备环境变量
       pDC->SetBkMode(TRANSPARENT);  //设置背景模式为透明
       CBrush *pBrush=new CBrush(RGB(255,255,255));     //创建白色画刷
       pDC->FillRect(&rect,pBrush);                //用画刷填充客户区
       pDC->SetText(Color(RGB(92,92,92)));           //设置文本颜色
       pDC->DrawText(m_Caption,rect,DT_SINGLELINE|DT_VCENTRE|DT_RIGHT);
                                                   //绘制文本,指定颜色和字体
   }
4、在主对话框中添加菜单资源:在OnInitDialog()函数中加载
   m_Menu=new CMenu;
   m_Menu->LoadMenu(IDR_MENU);              //加载菜单资源模版
   SetMenu(m_Menu);                    //将菜单添加到对话框
改变对话框窗口的大小和位置的相关函数:
   CRect rect;
   GetWindowRect(&rect);
   //设置对话框的窗口位置和大小:宽为232像素,高度不变
   SetWindowRect(&wndTop,0,0,232,rect.Height(),SWP_NOMOVE|SWP_NOZORDER);
改变编辑框的窗口大小及位置
   m_DspEdit.GetWindowRect(&rect);  //CButton m_DspEdit
   //编辑框宽为182像素,高度不变
   m_DspEdit.SetWindowPos(NULL,rect.left,rect.top,182,
                           rect.Height(),SWP_NOMOVE|SWP_NOZORDER);
改变静态框的位置及大小
   m_DspStatic.GetWindowRect(&rect);   //CAdbEdit m_DspStatic
   m_DspStatic.SetWindowPos(NULL,rect.left,rect.top,202,
                           rect.Height(),SWP_NOMOVE|SWP_NOZORDER);
更改菜单项显示文本
   m_Menu->ModifyMenu(ID_EXTEND,MF_BYCOMMAND|MF_STRING,ID_EXTEND,"扩展");               
    

本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/162829,如需转载请自行联系原作者
相关文章
|
6月前
|
算法 C++
算法笔记:递归(c++实现)
算法笔记:递归(c++实现)
|
6月前
|
编译器 C++
《Effective C++ 改善程序与设计的55个具体做法》 第一章 笔记
《Effective C++ 改善程序与设计的55个具体做法》 第一章 笔记
|
4月前
|
C++ 容器
【C/C++笔记】迭代器
【C/C++笔记】迭代器
30 1
|
4月前
|
存储 安全 程序员
【C/C++笔记】迭代器范围
【C/C++笔记】迭代器范围
73 0
|
5月前
|
C++ Windows
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
在Windows上使用Visual Studio 2022进行FFmpeg和SDL2集成开发,首先安装FFmpeg至E:\msys64\usr\local\ffmpeg,然后新建C++控制台项目。在项目属性中,添加FFmpeg和SDL2的头文件及库文件目录。接着配置链接器的附加依赖项,包括多个FFmpeg及SDL2的lib文件。在代码中引入FFmpeg的`av_log`函数输出"Hello World",编译并运行,若看到"Hello World",即表示集成成功。详细步骤可参考《FFmpeg开发实战:从零基础到短视频上线》。
241 0
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
|
7月前
|
存储 C++ 容器
黑马c++ STL部分 笔记(7) list容器
黑马c++ STL部分 笔记(7) list容器
|
7月前
|
算法 C++ 容器
黑马c++ STL常用算法 笔记(5) 常用算术生成算法
黑马c++ STL常用算法 笔记(5) 常用算术生成算法
|
7月前
|
算法 C++ 容器
黑马c++ STL常用算法 笔记(4) 常用拷贝和替换算法
黑马c++ STL常用算法 笔记(4) 常用拷贝和替换算法
|
7月前
|
存储 算法 搜索推荐
黑马c++ STL常用算法 笔记(3) 排序算法
黑马c++ STL常用算法 笔记(3) 排序算法
|
7月前
|
算法 C++
黑马c++ STL常用算法 笔记(2) 查找算法
黑马c++ STL常用算法 笔记(2) 查找算法