欢迎来到天天文库
浏览记录
ID:43325604
大小:59.00 KB
页数:5页
时间:2019-09-30
《Richedit控件_计算机软件及应用_IT计算机_专业资料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、关于windowless白勺richedit:1•看了一个介绍:个人猜测就是首先要写一个类,来实现ITextHost这个接口,同个这个类来把宿主窗口和无窗口的richedit联系起來。然后调用CreateTextServices,传入ITextHost指针,返回IUnknown指针。通过这个lllnown接口,可以查询到ITextServices和ITextDocument接口。最后通过这两个接口完成绝大多数功能。一般来说是无法直接通过调用接口的方式来获取无窗口RichEdit所处的HostWindow的,但是可以利用ITextHost的一些函数配合Win32API来得到HostWind
2、ow的窗口句柄比如:ITextHost*pHost;〃此处可以通过ITextServices的QueryInterface得到ITextHost的指针然后调用pHost->TxSetCapture(TRUE)i±窗口捕获鼠标,巧妙地地方就在这里,这时候你只要调用普通的Win32API:GetCapture()就可以得到HostWindow的窗口句柄了。注意获取完窗口句柄后要调用TxSetCapture(FALSE)#放鼠标。*#include"textserv.h"#defineFValidCF(_pcf)((_pcf)->cbSize==sizeof(CHARFORMAT))#defi
3、neFValidPF(_ppf)((_ppf)->cbSize==sizeof(PARAFORMAT))typedefvoid(*PNOTIFY_CALL)(intiNotify);#defineHOST_BORDER5#defineLY_PER_INCH1440EXTERNCconstIIDIIDITextEditControl;/***************************************************TXTEFFECT@enumDefinesdifferentbackgroundstylescontrolenumTXTEFFECT{TXTEFFECT_N
4、ONE=0,TXTEFFECT_SUNKEN,♦Me************************************************************************///@ememnospecialbackgoroundeffect//@ememdrawa"sunkenDnlook};interfaceITextEditControl:publiclUnknownvirtualLRESULTTxWindowProc(HWNDhwnd,UINTmsg,WPARAMwparam,LPARAMIparam)=0;};classMyTextHost:publicI
5、TextHost{public:////lUnknowninterface//virtualHRESULT_stdcallQuerylnterface(REFIIDriid,void**ppvObject);virtualULONG_stdcallAddRef(void);virtualULONG_stdcallRelease(void);//MyTextHostf);~MyTextHost();BOOLlnit(HWNDh_wnd,constCREATESTRUCT*pcs,PNOTIFY_CALLp_nc);//@cmemberGettheDCforthehostHDCTxGetDC
6、();//@cmemberReleasetheDCgottenfromthehostINTTxReleaseDC(HDChdc);//@cmemberShowthescrollbarBOOLTxShowScrollBar(INTfnBar,BOOLfShow);//@cmemberEnablethescrollbarBOOLTxEnableScrollBar(INTfuSBFIags,INTfuArrowflags);//@cmemberSetthescrollrangeBOOLTxSetScrollRange(INTfnBar,LONGnMinPos,INTnMaxPos,BOOLfR
7、edraw);//@cmemberSetthescrollpositionBOOLTxSetScrollPos(INTfnBar,INTnPos,BOOLfRedraw);//@cmemberInvalidateRectvoidTxlnvalidateRect(LPCRECTpre,BOOLfMode);//@cmemberSendaWM_PAINTtothewindowvoidTxViewChange(BOOLfUpdate);/
此文档下载收益归作者所有