RichEdit,API编程的问题!!急!!

tranquility 2003-10-16 03:07:50
BOOL NCRichEdit::Create( HWND hWndParent, UINT uiWidth, UINT uiHeight )
{

//每一个RichEdit对象只能创建一次
if( NULL != m_hWndRichEdit )
return TRUE;

if ( NULL == ( m_hWndParent = hWndParent ) )
return NULL;

RECT rcClient;
GetClientRect( hWndParent, &rcClient );

m_dwLeft = rcClient.left;
m_dwTop = rcClient.top;
m_dwRight = rcClient.left + uiWidth;
m_dwBottom = rcClient.top + uiHeight;

return Create();



}

BOOL NCRichEdit::Create( void )
{
if ( NULL == ( m_RichEditLib = LoadLibrary( "Riched20.dll" ) ) ) return FALSE;

m_hWndRichEdit = CreateWindowEx(
0L,
RICHEDIT_CLASS,
NULL,
WS_CHILD | WS_VISIBLE
| ES_MULTILINE | WS_BORDER
| WS_VSCROLL,
m_dwLeft,
m_dwTop,
m_dwRight,
m_dwBottom,
m_hWndParent,
(HMENU)NULL,
g_hInst,
NULL );

if ( NULL == m_hWndRichEdit ) return FALSE;

return SendMessage( m_hWndRichEdit, EM_SETCHARFORMAT, ( WPARAM )SCF_DEFAULT, ( LPARAM )&m_cfRichEdit );

}

BOOL NCRichEdit::AddLine( char* pzBuf )
{
lstrcpy( lpsLines, pzBuf );//lpsLines为类成员,已申请内存空间
memset( &m_esRichEdit, 0x00, sizeof( m_esRichEdit ) );//m_esRichEdit类成员
m_esRichEdit.dwCookie = ( DWORD )lpsLines;
// m_esRichEdit.dwError = 0;
m_esRichEdit.pfnCallback = ( EDITSTREAMCALLBACK )EditStreamInCallBack;
SendMessage( m_hWndRichEdit, EM_STREAMIN, ( WPARAM )( SF_RTF | SFF_SELECTION ), ( LPARAM )&m_esRichEdit );

return TRUE;
}

DWORD EditStreamInCallBack( DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb )
{

LPTSTR psz = (LPTSTR)dwCookie;
LONG cchAvail = lstrlen(psz);
if ((*pcb = min(cchAvail, cb)) != 0) {
memcpy (pbBuff, psz, *pcb);
memmove (psz, &psz[*pcb], cchAvail - *pcb + 1);
pbBuff[ *pcb ] = '\0';
}
return 0;

}


调用:
NCRichEdit Inst_RichEdit;
Inst_RichEdit.Create( m_hWnd, 500,650 );//m_hWnd 主窗口句柄
Inst_RichEdit.AddLine( "123" );
//这一句调用经调试发现在RichEd20.dll内部发生错误,请高手指点一下
,告诉我怎么调用才是正确的?
...全文
31 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tranquility 2003-10-16
  • 打赏
  • 举报
回复
谁可以帮帮我呀!急撒我也~~~555~~~

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧