标题:请教 怎么更改textout的字体
取消只看楼主
allpurpose
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-3-12
 问题点数:0 回复次数:0 
请教 怎么更改textout的字体
想制作一个可以在richtextbox 左侧显示行号功能。
下面的函数实现了在rtb左侧画出数字。但我发现,我在textout输出的文字,大小和字体并没有跟rtb一起改变
我该怎么读取rtb的字体,然后选入hdccpb设备呢?
程序代码:
'测试
Sub test(hwnd&)
    Dim rtRect As RECT, ret&, i As Integer, y As Integer
    Dim hdcEdit&, hdcCpb&, hdcBmp&
    ret = GetClientRect(hwnd, rtRect) '获得客服区大小
    hdcEdit = GetDC(hwnd)  '获取rt的dc
    hdcCpb = CreateCompatibleDC(hdcEdit)  '创建与RichEdit兼容的位图Dc,我们用来显示行号用的。就是内存dc
    hdcBmp = CreateCompatibleBitmap(hdcEdit, 40, rtRect.Bottom - rtRect.Top)
    ret = SelectObject(hdcCpb, hdcBmp)
    ret = FillRect(hdcCpb, rtRect, CreateSolidBrush(RGB(120, 100, 120))) '填充显示行号dc的背景颜色。大家可以试试其它颜色
    ret = SetBkMode(hdcCpb, TRANSPARENT) '?保持背景不变
    y = 4
    For i = 1 To 8
        ret = TextOut(hdcCpb, 5, y, StrPtr(i), 1)
        y = y + 20
    Next
    ret = BitBlt(hdcEdit, 0, 0, 40, rtRect.Bottom - rtRect.Top, hdcCpb, 0, 0, SRCCOPY)
    ret = DeleteDC(hdcCpb)
    ret = ReleaseDC(hwnd, hdcEdit)
    ret = DeleteObject(hdcBmp)
End Sub
搜索更多相关主题的帖子: textout 字体 
2008-07-24 13:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-225065-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046927 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved