注意:这是在桌面上绘制图形。如果想在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

最新文章

  1. C#/VB.NET 向PowerPoint文档插入视频
  2. [Network] 计算机网络基础知识总结
  3. CSS之viewport 1
  4. styleId妙用
  5. 《Hey程序员 你适合加入创业公司吗?》再补充
  6. Xcode证书路径和缓存清理路径
  7. struts2中Double类型的转换
  8. NET软件开发中的事务大全
  9. springmvc+json
  10. Quartz contention when running in load balanced environment--reference
  11. 【python】中文的输出,打印,文件编码问题解决方法
  12. HTML meta标签的用法及head中的一些常用标签
  13. Java命令参数说明
  14. QTP脚本汇总比较有价值
  15. 算法起步之kmp算法
  16. Jquery 清空input file的值
  17. Action写法心得
  18. 最简单的基于FFMPEG+SDL的视频播放器 ver2 (采用SDL2.0)
  19. 20165223《网络对抗技术》Exp4 恶意代码分析
  20. [原创]FPGA JTAG工具设计(一)

热门文章

  1. Activiti6 查询由某人发起的流程请求 设置流程发起人
  2. 如何将MultipartFile转换成based4
  3. Android APK开发 Drawable文件夹下的自定义Drawable文件
  4. wordpress列表页如果文章没有缩略图就显示默认图片
  5. 洛谷 CF997A Convert to Ones
  6. Educational Codeforces Round 78 (Rated for Div. 2) B - A and B(思维)
  7. selenium--获取HTML源码断言和URL地址
  8. Linux下进程间通信方式——共享内存
  9. CSRF 跨站
  10. suse12.2构建samba