MFC技术积累——基于MFC对话框类的那些事儿2
3. 绘图
3.1 对话框资源编辑
首先通过添加控件的方式来创建一个简单的绘图对话框如图所示,创建步骤为:
第一、在VC++6.0软件环境的灰色空白区域右击,选中Controls,然后会弹出一个控件对话框;
第二、点击需要的控件,鼠标箭头类型就会变成十字形,然后在主对话框里通过点击、拖拽绘制出需要的控件,这里也可以通过鼠标调整控件大小直到满意为止。
第三、在主对话框里右击打开属性对话框(一般情况下可以点击属性对话框左上角的形如大头针样式的小按钮来锁定属性对话框,解锁也是点击同样的按钮,只是按钮样式会变),然后选中控件,属性对话框也相应地显示该控件的属性。在控件属性对话框里来修改控件的标题、类型、ID等。
总之,以后在创建对话框工程时,就这样按部就班地先编辑主对话框资源,修改主对话框的属性(ID、大小、类型等)及其中控件的标题、类型、大小、ID等属性。
3.2 消息关联(使用画笔)
接下来就是为对话框进行消息关联,比如图3.1中,在运行对话框程序后,通过鼠标左键点击画图按钮,系统能响应按钮控件的鼠标左击消息,然后能在静态文本控件区域绘制一条红色直线。
第一、如何为画图按钮控件关联消息?简单的方法是仍然停留在刚才资源编辑状态,通过双击画图按钮控件,然后会弹出如图3.2的一个增加成员函数编辑框。输入函数名称,点击确定,系统就将按钮控件和该成员函数关联起来。
另一种方法就是通过类向导(MFC Class Wizard)进行控件与消息响应函数的关联,如图3.3所示:
当把ID句柄为IDB_DROW的画图按钮控件和OnDrow()成员函数关联起来后,系统就生成如下代码:
void CFDlg::OnDrow()
{
// TODO: Add your control notification handler code here
}
此时运行程序后点击画图按钮,那么系统就响应上述函数。因此想在静态文本区域绘制一条红色直线,就是在OnDrow()函数体内进行编辑绘图代码,示例代码如下:
void CFDlg::OnDrow()
{
// TODO: Add your control notification handler code here
CWnd* mywnd = GetDlgItem(IDC_DROWREGION);
CClientDC dc(mywnd);
CPen mypen;
CPen* oldpen;
RECT rc;
mywnd->GetClientRect(&rc);
mypen.CreatePen(PS_SOLID,,RGB(,,));
oldpen = dc.SelectObject(&mypen);
dc.MoveTo(rc.left,rc.top);
dc.LineTo(rc.right,rc.bottom);
dc.SelectObject(oldpen);
}
3.3 加载位图
3.3.1 通过Picture控件来导入位图
利用Picture控件来导入一幅位图,操作步骤如图3.4:
MFC技术积累——基于MFC对话框类的那些事儿2的更多相关文章
- MFC技术积累——基于MFC对话框类的那些事儿
1. 创建对话框类 (1)打开VC++6.0环境,点击:文件→新建: (2)在弹出的新建对话框中选择:工程→MFC AppWizard (exe)→输入工程名称(例如:功能调试)→工程保存路径名→确定 ...
- MFC技术积累——基于MFC对话框类的那些事儿5
4. 菜单 4.1 弹出菜单 本节主要讲解如何在主对话框的指定区域内通过鼠标右击来弹出一个菜单选项.最终效果图如图4.1. 如图4.1鼠标只能在指定区域(图中深色区域)内右击时弹出菜单,在指定区域外点 ...
- MFC技术积累——基于MFC对话框类的那些事儿3
3.3.2 创建图形画刷来实现位图加载 1.首先在Resource View中导入一幅位图,位图大小96×96像素: 2.其次在主对话框中添加一个静态文本资源,ID号是IDC_BITMAPAREA,添 ...
- MFC技术积累——基于MFC对话框类的那些事儿4
3.3.4 借助兼容DC加载DIB位图 创建一个与设备环境相兼容的DC,通过将位图暂时导入至兼容DC,然后利用CDC::BitBlt 或者CDC::StretchBlt函数将位图绘制到设备环境中. 示 ...
- MFC技术内幕系列之(四)---MFC消息映射与消息传递内幕
//////////////////////////////////////////////////////////////////////////////////// ...
- MFC编程入门之八(对话框:创建对话框类和添加控件变量)
创建好对话框资源后要做的就是生成对话框类了.生成对话框类主要包括新建对话框类.添加控件变量和控件的消息处理函数. 例程Addition是基于对话框的程序,所以程序自动创建了对话框模板IDD_ADDIT ...
- mfc 在VC的两个对话框类中传递参数的三种方法
弄了好久,今天终于把在VC中的对话框类之间传递参数的问题解决了,很开心,记录如下: 1. 我所建立的工程是一个基于MFC对话框的应用程序,一共有三个对话框,第一个对话框为主对话框,所对应的类为CTMD ...
- 【转】VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)
原文网址:http://www.jizhuomi.com/software/153.html 前两讲中鸡啄米为大家讲解了如何创建对话框资源.创建好对话框资源后要做的就是生成对话框类了.鸡啄米再声明下, ...
- VS2010/MFC对话框三:创建对话框类和添加控件变量
创建对话框类和添加控件变量 前两讲中讲解了如何创建对话框资源.创建好对话框资源后要做的就是生成对话框类了.生成对话框类主要包括新建对话框类.添加控件变量和控件的消息处理函数等. 例程Addition是 ...
随机推荐
- 从OutStreamWriter 和Filewriter谈Java编码
首先看JAVA API的描述: ABOUT OutputStreamWriter: "An OutputStreamWriter is a bridge from character str ...
- SPOJ:Ada and Graft (set合并&优化)
As you might already know, Ada the Ladybug is a farmer. She grows a big fruit tree (with root in 0). ...
- [laravel]请求处理
请求进入 public/index.php 文件. bootstrap/start.php 文件创建应用程序对象并检测环境. 内部的 framework/start.php 文件配置相关设置并加载服务 ...
- 014--python运算符和作业改进
一.运算符 % 取模,返回商的余数 10/3 3.33333333335 10//3 3 地板除,取整数,不是四舍五入 a = 3 b = 5 -----> a< ...
- 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时5
课时5 数据驱动的图像分类方式:K最邻近与线性分类器(下) 在参数化方法中,我们要做的是构造一个函数,输入一张图片,对每一类输出一个数值.对任意一张图片,我们会计算出它到底属于哪一类.这些参数有时候也 ...
- (水题)洛谷 - P1003 - 铺地毯
https://www.luogu.org/problemnew/show/P1003 一开始觉得是用树套树来区间修改单点查询,但是发现空间不够开. 看了题解发现这个是静态的问题,而且只问一个点的结果 ...
- HDOJ5020【几何】
题意: 给你n个点,问有几对三个点在一条直线上 思路: 目前为止很少写的几何题- 一开始两层for没有判断重复. 然后看了一些题解说排序一下,然后枚举每个点,求一个同一斜率的个数k,ans+=(k-1 ...
- python 字典 dict items values keys
dict.items() 1 >>> d = dict(one=1,two=2) 2 >>> it1 = d.items() 3 >>> it1 ...
- python 模块和包的使用方法
一.模块 1.import导入模块 import module1,mudule2... 2.from...import...导入模块 导入指定内容 from modname import name1[ ...
- iOS UITableView设置tableHeaderView时发生约束错误 UIView-Encapsulated-Layout-Height UIView-Encapsulated-Layout-Width
在将UITableView的tableHeaderView设置为我自己创建的View的时候, 当我为这个自定义View添加约束之后启动调试, 然后符号断点UIViewAlertForUnsatisfi ...