win32 绘图

本文介绍了Win32 API中DrawText函数的使用,包括DT_CALCRECT、DT_CENTER等参数的作用。接着讨论了如何设置颜色、画线、绘制弧线和贝塞尔曲线,提到了Arc、LineDDA、PolyBezier等功能,并阐述了回调函数的概念及其在绘图中的应用。最后,提到了PolyPolyline函数用于绘制复合线条的方法。
摘要由CSDN通过智能技术生成

DrawText函数

int DrawText(
HDC hDC, // 设备描述表句柄
LPCTSTR lpString, // 将要绘制的字符串
int nCount, // 字符串的长度
LPRECT lpRect, // 指向矩形结构RECT的指针
UINT uFormat // 正文的绘制选项
);

uFormat:
[输入]指定格式化文本的方法。它可以下列值的任意组合,各值描述如下:
DT_CALCRECT:这个参数比较重要,可以使DrawText函数计算出输出文本的尺寸。如果输出文本有多行,DrawText函数使用lpRect定义的矩形的宽度,并扩展矩形的底部以容纳输出文本的最后一行。如果输出文本只有一行,则DrawText函数改变矩形的右边界,以容纳下正文行的最后一个字符。出现上述任何一种情况,DrawText函数将返回格式化文本的高度,而不是绘制文本。
DT_CENTER:指定文本水平居中显示。
DT_VCENTER:指定文本垂直居中显示。该标记只在单行文本输出时有效,所以它必须与DT_SINGLELINE结合使用。
DT_SINGLELINE:单行显示文本,回车和换行符都不断行。

声明一个PAINTSTRUCT结构体的变量,然后传给BeginPaint函数,之后就可以画东西了。

DrawText(ps.hdc, L"希望你失去的是初吻而不是初夜.", -1, &rect, DT_CENTER);

设置颜色

SetTextColor(ps.hdc, RGB(0,150,255));  
case WM_PAINT:
    {
                      BeginPaint(hWnd, &ps);
                      TEXTMETRIC tm;
                      // 取得与文本相关的数据  
                      GetTextMetrics(ps.hdc, &tm);
                      RECT rect;
                      rect.top = 0L;
                      rect.left = ps.rcPaint.left;
                      rect.right = ps.rcPaint.right;
                      rect.bottom = rect.top + tm.tmHeight;
                      // 第一行文本  
                      SetTextColor(ps.hdc, RGB(0, 150, 255));
                      DrawText(ps.hdc, L"希望你失去的是初吻而不是初夜.", -1, &rect, DT_CENTER);
                      // 第二行文本  
                      rect.top += tm.tmHeight;
                      rect.bottom += tm.tmHeight;
                      SetTextColor(ps.hdc, RGB(220, 12, 50));
                      DrawText(ps.hdc, L
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值