绘图控制

本文介绍了在图形控制中的一些关键函数,如SetPixel、MoveTo、LineTo等用于绘制点和线,RecTangle、Ellipse用于绘制矩形和椭圆。还涉及到了模态对话框的创建,如CColorDialog和CFontDialog。讨论了如何改变控件颜色,如通过OnCtrColor函数和SetTextColor。此外,讲解了位图复制函数BitBlt和StretchBlt的使用。文章强调了颜色对话框的默认颜色设置和字体方向的表示,并提到了CGdiObject类对象与GDI资源的关联与释放。最后,讨论了自定义绘制控件和位图显示的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数:

SetPixel();设置一个点

MoveTo()  LineTo() 用于绘制直线

RecTangle() 用于绘制矩形

Ellipse() 用于绘制椭圆

DoModal() 用于创建模态对话框

CColorDialog CFontDialog 颜色对话框和字体对话框

CreateFontIndirect()根据选择的字体类型来初始化字体对象

HBRUSH OnCtrColor(CDC* pDC , CWnd *pWnd , UINT nCtrColor)两个指针分别指向要改变颜色的控件的文本,控件本身,最后一个参数表示控件的类型。

GetDlgCtrID() 获取所需控件的ID

SetTextColor() 设置控件上的文本颜色

BitBlt()将兼容DC的位图复制到当前DC中,

StretchBlt()将兼容DC的位图复制到当前DC中,但是可以实现位图的拉伸或压缩,以达到适合目的矩形 

知识点:

绘制其他颜色的线条,首先需要构建一个画笔对象,同时给画笔加上颜色,线条粗细等。

设置画刷为透明画刷,可以使画出来的图形显示出内部的内容。

视类对象的生命周期从应用程序产生时开始,至应用程序结束时终止。故其对象成员保存的值也是一直存在。

颜色对话框的CHOOSECOLOR类的rgbResult成员变量里面保存选择的颜色结果,可以通过调用这个成员获得所需的默认颜色。

要改变颜色对话框的默认颜色,需通过改变对话框的CC_RGBINIT标记,该标记在对话框构建是通过其构造函数的第二个参数来设置,或者直接通过CHOOSECOLOR结构的m_cc成员变量的nFlags成员设置,该成员不能直接赋值,必须通过与或的组合来赋值。

字体前带上@符号代表字体方向颠倒。

CGdiObject类对象与WindowsGDI资源对象通过m_hObject成员来进行关联,因此可通过判断m_hObject的值来判断两者是否已经关联上,如果关联上,可以通过DeleteObject()函数删除GDI资源对象来中断两者之间的关联。释放CGdiObject类对象。

对于对话框,对话框上的每一个控件要进行颜色绘制的时候都必须要向其发送WM_CTRCOLOR消息,好比小区里的业主房子外墙要重新粉刷(如果可以的话),都必须要向物业公司(或者开发商)发送申请。

自绘制空间应该具有BS_OWNERDRAW风格 ,通过控件属性对话框的Owner draw选项来设置

位图的显示,创建位图-〉创建兼容DC-〉将位图选入兼容DC-〉将兼容DC的位图贴到当前DC中

窗口绘制时先擦出窗口背景,后对窗口进行重新绘制,擦除背景时程序会发送一个WM_ERASEBKGND,在视类窗口中添加此消息的响应函数来完成窗口的重绘。同时也可以在OnDraw()函数中完成窗口的重绘。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值