VC 在桌面上绘制一些图形
注意:这是在桌面上绘制图形。如果想在VC++ MFC工程的视窗口上绘制图形。可以这么来,在工程View类的一个菜单响应(或者鼠标单击等事件的的响应)函数中添加下面main 中的代码,只需要将“红色字体”的改正为“hWnd”或者“this”.读者可以试一下。
#include<windows.h>
int main( void )
{
HDC hdc = GetWindowDC(GetDesktopWindow()); // 获取一个可供画图的DC,我这里就直接用桌面算了
HPEN hpen1 = CreatePen( PS_SOLID, 1, RGB(255,0,0) ); // 创建红色1像素宽度的实线画笔
//创建绿色5像素宽度的破折画笔,如果你想创建其他种类的画笔请参阅MSDN
HPEN hpen2 = CreatePen( PS_DASH, 5, RGB(0,255,0) );
HBRUSH hbrush1 = CreateSolidBrush( RGB(0,0,255) ); // 创建一个实体蓝色画刷
HBRUSH hbrush2 = (HBRUSH)GetStockObject( NULL_BRUSH );// 创造一个透明的画刷
// 将hpen1和hbrush1选进HDC,并保存HDC原来的画笔和画刷
HPEN hpen_old = (HPEN)SelectObject( hdc, hpen1 );
HBRUSH hbrush_old = (HBRUSH)SelectObject( hdc, hbrush1 );
Rectangle( hdc, 40, 30, 40+200, 30+50 );// 在(40,30)处画一个宽200像素,高50像素的矩形
SelectObject( hdc, hpen2 ); // 换hpen1和hbrush1,然后在(40,100)处也画一个矩形,看看有何差别
SelectObject( hdc, hbrush2 );
Rectangle( hdc, 40, 100, 40+200, 100+50 );
Ellipse( hdc, 40, 200, 40+200, 200+50 );// 画个椭圆看看
MoveToEx( hdc, 0, 600, NULL );// 画个(0,600)到(800,0)的直线看看
LineTo( hdc, 800, 0 );
SetPixel( hdc, 700, 500, RGB(255,255,0) );// 在(700,500)处画个黄点,不过这个点只有一像素大小,你细细的看才能找到
// 恢复原来的画笔和画刷
SelectObject( hdc, hpen_old );
SelectObject( hdc, hbrush_old );
return 0;
}
搬家于 CSDN 2015-05-14
最新文章
- C#/VB.NET 向PowerPoint文档插入视频
- [Network] 计算机网络基础知识总结
- CSS之viewport 1
- styleId妙用
- 《Hey程序员 你适合加入创业公司吗?》再补充
- Xcode证书路径和缓存清理路径
- struts2中Double类型的转换
- NET软件开发中的事务大全
- springmvc+json
- Quartz contention when running in load balanced environment--reference
- 【python】中文的输出,打印,文件编码问题解决方法
- HTML meta标签的用法及head中的一些常用标签
- Java命令参数说明
- QTP脚本汇总比较有价值
- 算法起步之kmp算法
- Jquery 清空input file的值
- Action写法心得
- 最简单的基于FFMPEG+SDL的视频播放器 ver2 (采用SDL2.0)
- 20165223《网络对抗技术》Exp4 恶意代码分析
- [原创]FPGA JTAG工具设计(一)
热门文章
- Activiti6 查询由某人发起的流程请求 设置流程发起人
- 如何将MultipartFile转换成based4
- Android APK开发 Drawable文件夹下的自定义Drawable文件
- wordpress列表页如果文章没有缩略图就显示默认图片
- 洛谷 CF997A Convert to Ones
- Educational Codeforces Round 78 (Rated for Div. 2) B - A and B(思维)
- selenium--获取HTML源码断言和URL地址
- Linux下进程间通信方式——共享内存
- CSRF 跨站
- suse12.2构建samba