欢迎来到天天文库
浏览记录
ID:42625716
大小:14.95 KB
页数:5页
时间:2019-09-19
《Richedit控件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、关于windowless的richedit:1.看了一个介绍:个人猜测就是首先要写一个类,来实现ITextHost这个接口,同个这个类来把宿主窗口和无窗口的richedit联系起来。然后调用CreateTextServices,传入ITextHost指针,返回IUnknown指针。通过这个IUnown接口,可以查询到ITextServices和ITextDocument接口。最后通过这两个接口完成绝大多数功能。一般来说是无法直接通过调用接口的方式来获取无窗口RichEdit所处的HostWindow的,但
2、是可以利用ITextHost的一些函数配合Win32API来得到HostWindow的窗口句柄比如:ITextHost*pHost;//此处可以通过ITextServices的QueryInterface得到ITextHost的指针然后调用pHost->TxSetCapture(TRUE)让窗口捕获鼠标,巧妙地地方就在这里,这时候你只要调用普通的Win32API:GetCapture()就可以得到HostWindow的窗口句柄了。注意获取完窗口句柄后要调用TxSetCapture(FALSE)释放鼠标。*
3、#include"textserv.h"#defineFValidCF(_pcf)((_pcf)->cbSize==sizeof(CHARFORMAT))#defineFValidPF(_ppf)((_ppf)->cbSize==sizeof(PARAFORMAT))typedefvoid(*PNOTIFY_CALL)(intiNotify);#defineHOST_BORDER5#defineLY_PER_INCH1440EXTERN_CconstIIDIID_ITextEditControl;/***
4、***********************************************************************TXTEFFECT@enumDefinesdifferentbackgroundstylescontrol**************************************************************************/enumTXTEFFECT{TXTEFFECT_NONE=0,//@ememnospecialbackgorou
5、ndeffectTXTEFFECT_SUNKEN,//@ememdrawa"sunken3-D"look};interfaceITextEditControl:publicIUnknown{virtualLRESULTTxWindowProc(HWNDhwnd,UINTmsg,WPARAMwparam,LPARAMlparam)=0;};classMyTextHost:publicITextHost{public://-----------------------------//IUnknowninter
6、face//-----------------------------virtualHRESULT_stdcallQueryInterface(REFIIDriid,void**ppvObject);virtualULONG_stdcallAddRef(void);virtualULONG_stdcallRelease(void);//-----------------------------MyTextHost();~MyTextHost();BOOLInit(HWNDh_wnd,constCREATE
7、STRUCT*pcs,PNOTIFY_CALLp_nc);//@cmemberGettheDCforthehostHDCTxGetDC();//@cmemberReleasetheDCgottenfromthehostINTTxReleaseDC(HDChdc);//@cmemberShowthescrollbarBOOLTxShowScrollBar(INTfnBar,BOOLfShow);//@cmemberEnablethescrollbarBOOLTxEnableScrollBar(INTfuSB
8、Flags,INTfuArrowflags);//@cmemberSetthescrollrangeBOOLTxSetScrollRange(INTfnBar,LONGnMinPos,INTnMaxPos,BOOLfRedraw);//@cmemberSetthescrollpositionBOOLTxSetScrollPos(INTfnBar,INTnPos,BOOLfRedraw);//@cmemberInvalidate
此文档下载收益归作者所有