阅读:3061回复:1
为什么不调用DrvTextOut?
按照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; |
|
最新喜欢:wingma... |
沙发#
发布于:2007-08-08 14:14
问题已经解决。
主要是看错了,用VS2005调试的时候断点会跑到其他函数,例如:AlphaBlend参数和DrvTextOut个数一样。如果实现代码都是空的话,可能断点会乱。 |
|