首页 > 其他分享 >win32开发(图形绘制)

win32开发(图形绘制)

时间:2022-11-23 13:09:02浏览次数:55  
标签:15 300 win32 130 hdc 图形 上下文 绘制 100



    在win32上面绘制图形其实是比较简单的。要想进行图形绘制,关键是找到设备上下文。就我目前所知道的,获得设备上下文主要有这么几种方式:一、根据BeginPaint获得设备上下文,这主要在WM_PAINT使用;二、根据GetDC获得设备上下文,这主要用在非WM_PAINT消息中;三、CreateDC获得设备上下文,这个主要用在屏幕的截取;四、根据CreateCompatibleDC获得设备上下文,然后通过BitBlt进行绘制,这个一般用在图形界面较多的绘制场景。今天,我们就讨论前面两种,后面两种等遇到了再说。


    WM_PAINT下用BeginPaint获得设备上下文是比较常用的方式,比如下面一段代码,


case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code here...
MoveToEx(hdc, 100,100,NULL);
LineTo(hdc, 150,230);
Rectangle(hdc, 200, 200, 300, 300);
Ellipse(hdc, 15,15, 130, 130);
EndPaint(hdc, &ps);
break;


    同样一段代码,如果是在鼠标响应的时候调用,应该怎么修改呢?


case WM_RBUTTONUP:
hdc = GetDC(hWnd);
// TODO: Add any drawing code here...
MoveToEx(hdc, 100,100,NULL);
LineTo(hdc, 150,230);
Rectangle(hdc, 200, 200, 300, 300);
Ellipse(hdc, 15,15, 130, 130);
ReleaseDC(hWnd, hdc);
break;

    大家发现没有,其实绘制的内容都是一样,只是hdc获取的方式发生了改变而已。

    其次,这里主要使用了这几个函数,


MoveToEx(hdc, 100,100,NULL);
LineTo(hdc, 150,230);
Rectangle(hdc, 200, 200, 300, 300);
Ellipse(hdc, 15,15, 130, 130);


    这其中MoveToEx和LineTo搭档画直线,Rectangle画矩形,Ellipse画椭圆形。

    有兴趣的同学可以试一试。


标签:15,300,win32,130,hdc,图形,上下文,绘制,100
From: https://blog.51cto.com/feixiaoxing/5880993

相关文章

  • win32开发(按键消息)
      对于一个应用来说,按键和鼠标都是基本的消息。当然,win32也需要独立处理按键消息和鼠标消息。今天,我们就讨论一下按键消息。一般认为,当键盘上一个key按下去之后,os会给ap......
  • win32开发(调试)
      很多同学都喜欢看代码,但是不喜欢调试代码。其实,在我看来,调试代码本身也是一项重要的能力。一份代码,如果没有经过反复调试和验证,很难说自己是不是理解得够深刻。同样对......
  • win32开发(简单绘图)
      在win32上面,所有的操作都是通过消息来完成的。正如前面一节说的那样,WM_CREATE、WM_PAINT、WM_SIZE、WM_DESTROY、WM_CHAR等消息都是我们在开发中经常要遇到的消息内容......
  • win32开发(添加菜单)
      使用win32编写菜单是一件很简单的事情。要添加自己的菜单,其实只要做好两方面的事情就可以了,一个就是在ResourceView中找到菜单入口,另外一个就是在WndProc添加好回调函......
  • 尺寸标注的文字应该绘制在哪里?
    问题引入在标注尺寸时,我们会在双向箭头中心处的旁边,绘制对应的文本提示。要绘制的文字位置看起来自然舒服,文本的绘制位置并不是简单地从线段中心点偏移固定值。计算过程......
  • 基于matlab从图形坐标转换图像
    一、部分源码%usage_ImageToAndFromGraphCooridinates%Caveat:centerofplotmayberequiredcloseall;clearall;clc;plotRowSize=2;plotColSize=2;plotIndex......
  • auto.exe/Backdoor.Win32.Agent.bgu,b8u6bvx912.sys/Trojan-Downloader.Win32.Hmir.do
    auto.exe/Backdoor.Win32.Agent.bgu,b8u6bvx912.sys/Trojan-Downloader.Win32.Hmir.don等2endurer原创2008-06-30第1版到​​http://purpleendurer.ys168.com​​下载......
  • 对 Trojan.DL.Win32.Mnless.yxx / alg.exe 的一点分析
    对Trojan.DL.Win32.Mnless.yxx/alg.exe的一点分析endurer原创2008-02-21第1版就是Worm.Win32.Diskgen.gen/磁碟机也捎带广告?​javascript:void(0)​​中的捕获的一个......
  • 抓到通过U盘传播的 Virus.Win32.AutoRun.ab/Worm.Win32.Agent.zhw/setup.exe
    抓到通过U盘传播的Virus.Win32.AutoRun.ab/Worm.Win32.Agent.zhw/setup.exeendurer原创2007-12-25第1版在一位同事拿来拷文件的U盘中发现的。把U盘接入电脑后,先运行WinRA......
  • 25jurdcyw4.sys,promote.dll/Adware.Win32.Agent.nrc,AdWare.Win32.EJok.x等
    25jurdcyw4.sys,promote.dll/Adware.Win32.Agent.nrc,mnbgezuvepffc.dll/AdWare.Win32.EJok.x等endurer原创2008-01-06第1版有位网友发email来说他的电脑最近开机时出......