加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在WinAPI C中绘制形状

发布时间:2020-12-16 09:43:51 所属栏目:百科 来源:网络整理
导读:我正在通过WinAPI C学习绘图形状 我试图用WM_PAINT上的一些代码绘制2个椭圆: PAINTSTRUCT ps;HDC hdc = BeginPaint(hWnd,ps);HPEN hPen = CreatePen(PS_DASHDOTDOT,2,NULL);SelectObject(hdc,hPen);Ellipse(hdc,100,200,400,400);Ellipse(hdc,300,500,510);
我正在通过WinAPI C学习绘图形状
我试图用WM_PAINT上的一些代码绘制2个椭圆:

PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd,&ps);
HPEN hPen = CreatePen(PS_DASHDOTDOT,2,NULL);SelectObject(hdc,hPen);
Ellipse(hdc,100,200,400,400);
Ellipse(hdc,300,500,510);   

DeleteObject(hPen);
EndPaint(hWnd,&ps);

但输出是:

我期望的结果是两个形状都不是另一个的前面.边框是点划线点.
谁能告诉我我的错误?我感谢您的帮助.

解决方法

Ellipse()(与所有GDI形状函数一样)使用当前画笔填充形状,这就是您的输出看起来像这样的原因.有关详细信息,请参阅 setting pen and brush colors.

如果您只想要没有填充的椭圆,请先选择空刷:

SelectObject(hdc,GetStockObject(NULL_BRUSH));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读