2010-08-02 3 views
1

Microsoft WebBrowser 컨트롤 (MSHTML)에서 현재 선택된 텍스트의 글꼴 크기를 가져 오는 방법이 있습니까?WebBrowser 컨트롤에서 현재 선택된 텍스트의 글꼴 크기를 얻는 방법

나는 IHTMLDocument2::queryCommandState("FontSize", ...)을 알고 있지만이 방법은 오래된 글꼴 크기 "xx-small"을 "xx-large"로 설정하기 때문에 1에서 7 사이의 값만 반환합니다. "10pt"또는 "14px"와 같은 글꼴 크기의 경우 유용하지 않은 값이 반환됩니다.

글꼴 크기를보다 유연하게 결정할 수있는 방법이 있습니까?

편집 : 한편, 나는 (Microsoft 지원에서 몇 가지 유용한 힌트) 내 질문에 대한 해결책을 발견 : 당신이 그것을 얻는 방법을 발견하기 때문에

try 
{ 
    mshtml.IHTMLTxtRange range = _dom.selection.createRange() as mshtml.IHTMLTxtRange; 
    if (range != null) 
    { 
     mshtml.IHTMLElement2 elem = range.parentElement() as mshtml.IHTMLElement2; 
     txtFontSize.Text = elem.currentStyle.fontSize.ToString(); 

    } 
} 
catch (COMException ex) 
{ 
} 

답변

1

을, 여기 방식입니다 그것을 설정하십시오.

mshtml.HTMLDocument doc = [Obtain HtmlDocument]; 
doc.execCommand("FontSize", false, "12pt"); 

값을 얻으려면 당신이 사용할 수있는

doc.queryCommandValue("FontSize"); 
0
IHTMLDocument2 htmlDocument = browser.Document.DomDocument as IHTMLDocument2; 

IHTMLSelectionObject sel = (IHTMLSelectionObject)htmlDocument.selection; 
IHTMLTxtRange range = (IHTMLTxtRange)sel.createRange() as IHTMLTxtRange; 

if (range != null) 
{ 
    range.select(); 
    var x = range.queryCommandValue("bold"); 
    textBoxFindData.Text = (x.ToString()); 
}