LouYongZhi
驱动牛犊
驱动牛犊
  • 注册日期2003-02-09
  • 最后登录2018-05-31
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:2993回复:1

为什么不调用DrvTextOut?

楼主#
更多 发布于:2007-08-08 11:35
按照msplot例子写的一个驱动,死活不调用DrvTextOut,不知道为什么!
这是Surface创建的代码,各位大虾看看有什么问题:
    if( !(pPDev->hDevSurface = EngCreateDeviceSurface( (DHSURF)dhpdev, pPDev->szPaper, BMF_24BPP ) ) )
    {
        return(NULL);
    }
    //如果没有相应的DDI函数,这个函数将调用失败
    if( !EngAssociateSurface( pPDev->hDevSurface, (HDEV)pPDev->hDevDevice,
            HOOK_BITBLT            |
            HOOK_STRETCHBLT        |
            HOOK_COPYBITS          |
            HOOK_STROKEPATH        |
            HOOK_FILLPATH          |
            HOOK_STROKEANDFILLPATH |
            HOOK_PAINT             |
            HOOK_TEXTOUT           |
            HOOK_LINETO            
            ) )
GDIInfo:
    pGDIInfo->flTextCaps   = 0;
DEVInfo:
    pDevInfo->flGraphicsCaps = 0;
    pDevInfo->flGraphicsCaps |= GCAPS_ALTERNATEFILL;
    pDevInfo->flGraphicsCaps |= GCAPS_HORIZSTRIKE;
    pDevInfo->flGraphicsCaps |= GCAPS_VERTSTRIKE;
    pDevInfo->flGraphicsCaps |= GCAPS_VECTORFONT;
    pDevInfo->flGraphicsCaps |= GCAPS_HALFTONE;
    pDevInfo->flGraphicsCaps |= GCAPS_OPAQUERECT;
    pDevInfo->flGraphicsCaps |= GCAPS_BEZIERS;
    pDevInfo->flGraphicsCaps |= GCAPS_WINDINGFILL;

最新喜欢:

wingmanwingma...
LouYongZhi
驱动牛犊
驱动牛犊
  • 注册日期2003-02-09
  • 最后登录2018-05-31
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-08-08 14:14
问题已经解决。
主要是看错了,用VS2005调试的时候断点会跑到其他函数,例如:AlphaBlend参数和DrvTextOut个数一样。如果实现代码都是空的话,可能断点会乱。
游客

返回顶部