如果您的鼠标有滚轮,您在使用rtf框时按住ctrl键同时滚动滚轮,RTF中的内容会被放大,我想通过编程来放大RTF中的内容该怎么做呢???不是任何人的鼠标都有滚轮的呀!!!
谢谢各位大哥了!!!!!!!

解决方案 »

  1.   

    不是所有鼠标都有滚轮Private Sub Command1_Click() '放大
    RichTextBox1.Font.Size = RichTextBox1.Font.Size + 2
    End SubPrivate Sub Command2_Click() '缩小
    RichTextBox1.Font.Size = RichTextBox1.Font.Size - 2
    End Sub
      

  2.   

    很简单,但是有一定风险,那就是用SubClass技术处理WM_MOUSEWHELL消息即可
    至于详细做法你必须先看看SubClass技术的应用,这不是说说就能懂的
      

  3.   

    要说明的是:在使用rtf框时按住ctrl键同时滚动滚轮,RTF中的内容会被放大,这个放大不是改变RichTextBox1.Font.Size 实现的,不信的话,可用一个按钮在内容被放大的前后分别输出一下RichTextBox1.Font.Size 的值:Private Sub Command1_Click()
        MsgBox CStr(Me.RichTextBox1.Font.Size)
    End Sub
      

  4.   

    我知道不通过改变字号实现的,其实WebBrowers也接受ctrl键同时滚动滚轮放大,如果用subclass该怎么做,不过这种重量性控件,很难成功,帮忙啊!
      

  5.   

    能不能用SetWorldTransform呢(最近老在想这个函数)
    估计这个功能是封装在RichTextBox的可视化类中的,不能访问
      

  6.   

    SetWorldTransform总是失败。我不知道怎么用,MSDN上资料不够详细。我也懒的GetLastDllError
      

  7.   

    //SetWorldTransform总是失败。我不知道怎么用,MSDN上资料不够详细用Dependency Walker看了一下,没用到SetWorldTransform这个函数
      

  8.   

    //用Dependency Walker看了一下,没用到SetWorldTransform这个函数呵呵,那是应该的!只是我说也许从外部入手,我们可以试试SetWorldTransform。微软在封装RTB和IE的时候,肯定是从内部的界面表示块入手的。它用不着SetWorldTransform,况且这个函数只能在2000以后的版本中用
      

  9.   

    那只是处理了WM_MOUSEWHEEL,并不是什么Bug,而是一种功能。
      

  10.   

    //对,就是想知道是怎么处理滚轮的,可以调用或模拟事件吗?在子类中拦截WM_MOUSEWHEEL消息即可
    还是你是其它的意思