IMarkupPointer FindText无法查找到结果 我用接口IMarkupPointer 的方法FindText,无法查找到网页里相应的结果。网页里采用了display:none的样式 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你怎么使用FindText这个方法的?可以具体说下,是不是参数使用的有问题哦,是都不能查找到呢?还有某些呢?这和你说的样式有关系么? HRESULT hr = S_FALSE; if( *pMarkupcontainer == NULL ) { hr = pDoc2->QueryInterface( IID_IMarkupContainer, (void **) pMarkupcontainer ); if( hr != S_OK ) return; } if( *pMarkSer == NULL ) { hr = pDoc2->QueryInterface( IID_IMarkupServices, (void **) pMarkSer ); if( hr != S_OK ) return; } if( *pMarkPtrStart == NULL ) { // need two pointers for ing hr = (*pMarkSer)->CreateMarkupPointer( pMarkPtrStart ); if( hr != S_OK ) return; } if( *pMarkPtrEnd == NULL ) { // beginning and ending position of text. hr = (*pMarkSer)->CreateMarkupPointer( pMarkPtrEnd ); if( hr != S_OK ) return; } // Set gravity of this pointer so that when the replacement text // is inserted it will float to be after it. hr = (*pMarkPtrStart)->SetGravity( POINTER_GRAVITY_Right ); if( hr != S_OK ) return; hr = (*pMarkPtrEnd)->SetGravity( POINTER_GRAVITY_Left ); if( hr != S_OK ) return; // Start the search at the beginning of the primary container hr = (*pMarkPtrStart)->MoveToContainer( *pMarkupcontainer, TRUE ); if( hr != S_OK ) return; hr = (*pMarkPtrEnd)->MoveToContainer( *pMarkupcontainer, FALSE ); if( hr != S_OK ) return; DWORD dwFlags = 0; if( m_bMatchCase ) dwFlags |= FINDTEXT_MATCHCASE; for( ; ;) { hr = (*pMarkPtrStart)->FindText( m_bszSearchText, dwFlags, *pMarkPtrEnd, NULL );} 就是上面那样用的啊。但是如果页面里面存在两个字符,一个字符隐藏,一个不隐藏。结果findtext只找到隐藏的。 pMarkPtrStart MoveToPointer 到 pMarkPtrEnd 了吗? 关于连接数据库问题 程序有错误,VS2005却直接运行 access2003中的,这样的sql语句咋写? 多少专家分才能是4颗小星星啊? 新手简单问题1个。 编译openssl的错误,“ECPKPARAMETERS_it” : 重定义 请教,扩展名是db的数据库文件属于哪种数据库?VC能访问吗? 急急急!!!请用过JFIF(JPEG)的高手进一进来。。78分全部给了。。请别浪费! 在ODBC API中如何处理SQL SERVER的DateTime数据类型? 可以通过读一个列表里面的路径再来循环显示多张张图片呢??? vs2008中调试的问题 DISPID_NEWWINDOW3 无法打开广告页
if( *pMarkupcontainer == NULL )
{
hr = pDoc2->QueryInterface( IID_IMarkupContainer, (void **) pMarkupcontainer );
if( hr != S_OK )
return;
}
if( *pMarkSer == NULL )
{
hr = pDoc2->QueryInterface( IID_IMarkupServices, (void **) pMarkSer );
if( hr != S_OK )
return;
} if( *pMarkPtrStart == NULL )
{
// need two pointers for ing
hr = (*pMarkSer)->CreateMarkupPointer( pMarkPtrStart );
if( hr != S_OK )
return;
}
if( *pMarkPtrEnd == NULL )
{
// beginning and ending position of text.
hr = (*pMarkSer)->CreateMarkupPointer( pMarkPtrEnd );
if( hr != S_OK )
return;
} // Set gravity of this pointer so that when the replacement text
// is inserted it will float to be after it.
hr = (*pMarkPtrStart)->SetGravity( POINTER_GRAVITY_Right );
if( hr != S_OK )
return;
hr = (*pMarkPtrEnd)->SetGravity( POINTER_GRAVITY_Left );
if( hr != S_OK )
return; // Start the search at the beginning of the primary container
hr = (*pMarkPtrStart)->MoveToContainer( *pMarkupcontainer, TRUE );
if( hr != S_OK )
return;
hr = (*pMarkPtrEnd)->MoveToContainer( *pMarkupcontainer, FALSE );
if( hr != S_OK )
return; DWORD dwFlags = 0;
if( m_bMatchCase )
dwFlags |= FINDTEXT_MATCHCASE; for( ; ;)
{
hr = (*pMarkPtrStart)->FindText( m_bszSearchText, dwFlags, *pMarkPtrEnd, NULL );
}