📄 htmleditctrl2.cpp
字号:
if( SUCCEEDED(m_hResult) )
{
BSTR2CString(bstrTitle, a_sTitle);
SysFreeString(bstrTitle);
}
return m_hResult;
}
HRESULT CHtmlEditCtrl2::GetBlockFormatNames(CStringArray &sa)
{
CComVariant vaRet;
HRESULT hr = E_FAIL;
long lStatus = QueryStatus(IDM_GETBLOCKFMTS);
if (lStatus & OLECMDF_ENABLED || lStatus & OLECMDF_LATCHED)
{
if (S_OK == ExecCommand(IDM_GETBLOCKFMTS, OLECMDEXECOPT_DODEFAULT, NULL, &vaRet))
{
if(vaRet.vt & VT_ARRAY)
{
USES_CONVERSION;
SAFEARRAY *psa = vaRet.parray;
BSTR bstrElem;
long lBound = 0,uBound = 0;
if(S_OK == SafeArrayGetLBound(psa,1,&lBound) &&
S_OK == SafeArrayGetUBound(psa,1,&uBound) )
{
for(long i=lBound; i<=uBound; i++)
{
if( (S_OK == SafeArrayGetElement(psa, &i, &bstrElem)) )
sa.Add(CString(OLE2T(bstrElem)));
}
hr = S_OK;
}
}
}
}
if (vaRet.vt == VT_ERROR)
hr = V_ERROR(&vaRet);
return hr;
}
HRESULT CHtmlEditCtrl2::SetForeColor(LPCTSTR szColor)
{
return ExecHelperSetVal(IDM_FORECOLOR, szColor);
}
HRESULT CHtmlEditCtrl2::SetForeColor(int nColor)
{
return ExecHelperSetVal(IDM_FORECOLOR, nColor, OLECMDF_SUPPORTED|OLECMDF_ENABLED);
}
HRESULT CHtmlEditCtrl2::GetForeColor(int &nColor)
{
return ExecHelperGetVal(IDM_FORECOLOR, nColor, OLECMDF_ENABLED|OLECMDF_SUPPORTED);
}
HRESULT CHtmlEditCtrl2::GetBackColor(int& nColor)
{
return ExecHelperGetVal(IDM_BACKCOLOR, nColor, OLECMDF_ENABLED|OLECMDF_SUPPORTED);
}
HRESULT CHtmlEditCtrl2::SetBackColor(LPCTSTR szColor)
{
return ExecHelperSetVal(IDM_BACKCOLOR, szColor, OLECMDF_ENABLED|OLECMDF_SUPPORTED);
}
HRESULT CHtmlEditCtrl2::SetBackColor(int nColor)
{
return ExecHelperSetVal(IDM_BACKCOLOR, nColor, OLECMDF_ENABLED|OLECMDF_SUPPORTED);
}
HRESULT CHtmlEditCtrl2::SetDefaultComposeSettings(LPCSTR szFontName,
unsigned short nFontSize,
COLORREF crFontColor,
COLORREF crFontBgColor,
bool bBold,
bool bItalic,
bool bUnderline )
{
HRESULT hr = ExecHelperSetVal(IDM_HTMLEDITMODE, true);
if (FAILED(hr))
return hr;
CString strBuffer;
TCHAR szFontColor[12];
TCHAR szBgColor[12];
if(crFontColor == 0xFF000000)
szFontColor[0] = 0;
else
if (0 > _sntprintf(szFontColor, 12, _T("%d.%d.%d"), GetRValue(crFontColor),
GetGValue(crFontColor), GetBValue(crFontColor)))
return E_UNEXPECTED;
if (crFontBgColor == 0xFF000000)
szBgColor[0] = 0;
else
if (0 > _sntprintf(szBgColor, 12, _T("%d.%d.%d"), GetRValue(crFontBgColor),
GetGValue(crFontBgColor), GetBValue(crFontBgColor)))
return E_UNEXPECTED;
try
{
strBuffer.Format(_T("%d,%d,%d,%d,%s,%s,%s"),
bBold ? 1 : 0,
bItalic ? 1 : 0,
bUnderline ? 1 : 0,
nFontSize,
szFontColor[0] ? szFontColor : _T(""),
szBgColor[0] ? szBgColor : _T(""),
szFontName);
}
catch(...)
{
return E_UNEXPECTED;
}
return ExecHelperSetVal(IDM_COMPOSESETTINGS, (LPCTSTR)strBuffer);
}
HRESULT CHtmlEditCtrl2::GetBlockFormat(CString& strFormat)
{
return ExecHelperGetVal(IDM_BLOCKFMT, strFormat, OLECMDF_SUPPORTED|OLECMDF_ENABLED);
}
HRESULT CHtmlEditCtrl2::SetBlockFormat(LPCTSTR szFormat)
{
return ExecHelperSetVal(IDM_BLOCKFMT, szFormat);
}
HRESULT CHtmlEditCtrl2::GetFontFace(CString& strFace)
{
return ExecHelperGetVal(IDM_FONTNAME, strFace, OLECMDF_ENABLED|OLECMDF_SUPPORTED);
}
HRESULT CHtmlEditCtrl2::SetFontFace(LPCTSTR szFace)
{
return ExecHelperSetVal(IDM_FONTNAME, szFace);
}
HRESULT CHtmlEditCtrl2::IE50Paste(LPCTSTR szData)
{
return ExecHelperSetVal(IDM_IE50_PASTE, szData);
}
HRESULT CHtmlEditCtrl2::GetBookMark(CString& strAnchor)
{
return ExecHelperGetVal(IDM_BOOKMARK, strAnchor);
}
HRESULT CHtmlEditCtrl2::SetBookMark(LPCTSTR szAnchorName)
{
return ExecHelperSetVal(IDM_BOOKMARK, szAnchorName,OLECMDF_SUPPORTED);
}
HRESULT CHtmlEditCtrl2::SetOverwriteMode(bool bMode)
{
return ExecHelperSetVal(IDM_OVERWRITE, bMode);
}
HRESULT CHtmlEditCtrl2::Is1DElement(bool& bValue)
{
return ExecHelperGetVal(IDM_1D_ELEMENT, bValue);
}
HRESULT CHtmlEditCtrl2::Is2DElement(bool& bValue)
{
return ExecHelperGetVal(IDM_2D_ELEMENT, bValue);
}
HRESULT CHtmlEditCtrl2::GetFontSize(short& nSize)
{
return ExecHelperGetVal(IDM_FONTSIZE, nSize);
}
HRESULT CHtmlEditCtrl2::SetFontSize(unsigned short size)
{
return ExecHelperSetVal(IDM_FONTSIZE, (short)size);
}
HRESULT CHtmlEditCtrl2::GetFrameZone(short& nZone)
{
return ExecHelperGetVal(IDM_GETFRAMEZONE, nZone);
}
HRESULT CHtmlEditCtrl2::SetCSSEditingLevel(short nLevel)
{
return ExecHelperSetVal(IDM_CSSEDITING_LEVEL, nLevel, 0);
}
HRESULT CHtmlEditCtrl2::HyperLink(LPCTSTR szUrl)
{
if (szUrl)
return ExecHelperSetVal(IDM_HYPERLINK, szUrl, OLECMDF_SUPPORTED,
OLECMDEXECOPT_DONTPROMPTUSER);
return ExecHelperNN(IDM_HYPERLINK, OLECMDF_SUPPORTED, OLECMDEXECOPT_DODEFAULT);
}
HRESULT CHtmlEditCtrl2::Image(LPCTSTR szUrl)
{
if (szUrl)
return ExecHelperSetVal(IDM_IMAGE, szUrl, OLECMDF_SUPPORTED,
OLECMDEXECOPT_DONTPROMPTUSER);
return ExecHelperNN(IDM_IMAGE, OLECMDF_SUPPORTED, OLECMDEXECOPT_DODEFAULT);
}
HRESULT CHtmlEditCtrl2::OrderList(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_ORDERLIST, szId);
}
HRESULT CHtmlEditCtrl2::UnorderList(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_UNORDERLIST, szId);
}
HRESULT CHtmlEditCtrl2::AddToGlyphTable(LPCTSTR szTag,
LPCTSTR szImgUrl,
unsigned short nTagType,
unsigned short nAlignment,
unsigned short nPosInfo,
unsigned short nDirection,
unsigned int nImgWidth,
unsigned int nImgHeight)
{
// Check Paramters
if (!szTag ||
!szImgUrl ||
nTagType > 2 ||
nAlignment > 3 ||
nPosInfo > 3 ||
nDirection > 4)
return E_INVALIDARG;
CString strGlyphEntry;
try
{
strGlyphEntry.Format(_T("%%%%%s^^%%%%%s^^%%%%%d^^%%%%%d^^%%%%%d^^")
_T("%%%%%d^^%%%%%d^^%%%%%d^^%%%%%d^^%%%%%d^^**"),
szTag, szImgUrl, nTagType, nAlignment, nPosInfo,
nDirection, nImgWidth, nImgHeight, nImgWidth, nImgHeight);
}
catch(...)
{
return E_UNEXPECTED;
}
CComVariant vIn((LPCTSTR)strGlyphEntry);
return ExecCommand(IDM_ADDTOGLYPHTABLE, OLECMDEXECOPT_DODEFAULT, &vIn);
}
HRESULT CHtmlEditCtrl2::EmptyGlyphTable()
{
return ExecHelperNN(IDM_EMPTYGLYPHTABLE);
}
HRESULT CHtmlEditCtrl2::Button(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_BUTTON, szId);
}
HRESULT CHtmlEditCtrl2::CheckBox(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_CHECKBOX, szId);
}
HRESULT CHtmlEditCtrl2::DropDownBox(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_DROPDOWNBOX, szId);
}
HRESULT CHtmlEditCtrl2::HorizontalLine(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_HORIZONTALLINE, szId);
}
HRESULT CHtmlEditCtrl2::Iframe(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_IFRAME, szId);
}
HRESULT CHtmlEditCtrl2::InsFieldSet(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_INSFIELDSET, szId);
}
HRESULT CHtmlEditCtrl2::InsInputButton(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_INSINPUTBUTTON, szId);
}
HRESULT CHtmlEditCtrl2::InsInputHidden(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_INSINPUTHIDDEN, szId);
}
HRESULT CHtmlEditCtrl2::InsInputImage(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_INSINPUTIMAGE, szId);
}
HRESULT CHtmlEditCtrl2::InsInputPassword(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_INSINPUTPASSWORD, szId);
}
HRESULT CHtmlEditCtrl2::InsInputReset(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_INSINPUTRESET, szId);
}
HRESULT CHtmlEditCtrl2::InsInputSubmit(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_INSINPUTSUBMIT, szId);
}
HRESULT CHtmlEditCtrl2::InsInputUpload(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_INSINPUTUPLOAD, szId);
}
HRESULT CHtmlEditCtrl2::ListBox(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_LISTBOX, szId);
}
HRESULT CHtmlEditCtrl2::Marquee(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_MARQUEE, szId);
}
HRESULT CHtmlEditCtrl2::GetBodyBackgroundCSSText(CString& a_sStyleText)
{
if(PrepareInterfaces() == FALSE)
{
return E_FAIL;
}
IHTMLElement* pElem;
m_hResult = m_pHtmlDoc->get_body(&pElem);
if( SUCCEEDED(m_hResult) && pElem )
{
IHTMLStyle* pStyle;
m_hResult = pElem->get_style(&pStyle);
if(SUCCEEDED(m_hResult) && pStyle)
{
BSTR bstrTEMP = NULL;
m_hResult = pStyle->get_cssText(&bstrTEMP);
if( SUCCEEDED(m_hResult) )
{
BSTR2CString(bstrTEMP, a_sStyleText);
}
SysFreeString(bstrTEMP);
pStyle->Release();
}
pElem->Release();
}
return m_hResult;
}
HRESULT CHtmlEditCtrl2::Paragraph(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_PARAGRAPH, szId);
}
HRESULT CHtmlEditCtrl2::RadioButton(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_RADIOBUTTON, szId);
}
HRESULT CHtmlEditCtrl2::SaveAs(LPCTSTR szPath)
{
return ExecHelperSetVal(IDM_SAVEAS, szPath);
}
HRESULT CHtmlEditCtrl2::TextArea(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_TEXTAREA, szId);
}
HRESULT CHtmlEditCtrl2::TextBox(LPCTSTR szId)
{
return ExecHelperSetVal(IDM_TEXTBOX, szId);
}
HRESULT CHtmlEditCtrl2::GetAbsolutePosition(bool &bCurValue)
{
bCurValue = (QueryStatus(IDM_ABSOLUTE_POSITION) & OLECMDF_LATCHED) != 0;
return S_OK;
}
HRESULT CHtmlEditCtrl2::SetAbsolutePosition(bool bNewValue)
{
return ExecHelperSetVal(IDM_ABSOLUTE_POSITION, bNewValue );
}
HRESULT CHtmlEditCtrl2::Set2DPosition(bool bNewValue)
{
return ExecHelperSetVal(IDM_2D_POSITION, bNewValue, 0);
}
HRESULT CHtmlEditCtrl2::SetAtomicSelection(bool bNewValue)
{
return ExecHelperSetVal(IDM_ATOMICSELECTION, bNewValue, 0);
}
HRESULT CHtmlEditCtrl2::SetAutoURLDetectMode(bool bNewValue)
{
return ExecHelperSetVal(IDM_AUTOURLDETECT_MODE, bNewValue, 0);
}
HRESULT CHtmlEditCtrl2::SetDisableEditFocusUI(bool bNewValue)
{
return ExecHelperSetVal(IDM_DISABLE_EDITFOCUS_UI, bNewValue, 0);
}
HRESULT CHtmlEditCtrl2::SetIE5PasteMode(bool bNewValue)
{
return ExecHelperSetVal(IDM_IE50_PASTE_MODE, bNewValue, 0);
}
HRESULT CHtmlEditCtrl2::SetLiveResize(bool bNewValue)
{
return ExecHelperSetVal(IDM_LIVERESIZE, bNewValue, 0);
}
HRESULT CHtmlEditCtrl2::SetMultiSelect(bool bNewValue)
{
return ExecHelperSetVal(IDM_MULTIPLESELECTION, bNewValue, 0);
}
HRESULT CHtmlEditCtrl2::SetOverrideCursor(bool bNewValue)
{
return ExecHelperSetVal(IDM_OVERRIDE_CURSOR, bNewValue, 0);
}
HRESULT CHtmlEditCtrl2::SetRespectVisInDesign(bool bNewValue)
{
return ExecHelperSetVal(IDM_RESPECTVISIBILITY_INDESIGN, bNewValue, 0);
}
HRESULT CHtmlEditCtrl2::GetShowAlignedSiteTags(bool &bCurValue)
{
bCurValue = (QueryStatus(IDM_SHOWALIGNEDSITETAGS) & OLECMDF_LATCHED) != 0;
return S_OK;
}
HRESULT CHtmlEditCtrl2::SetShowAlignedSiteTags(bool bNewValue)
{
return ExecHelperSetVal(IDM_SHOWALIGNEDSITETAGS, bNewValue);
}
HRESULT CHtmlEditCtrl2::GetShowAllTags(bool &bCurValue)
{
bCurValue = (QueryStatus(IDM_SHOWALLTAGS) & OLECMDF_LATCHED) != 0;
return S_OK;
}
HRESULT CHtmlEditCtrl2::SetShowAllTags(bool bNewValue)
{
return ExecHelperSetVal(IDM_SHOWALLTAGS, bNewValue);
}
HRESULT CHtmlEditCtrl2::GetShowAreaTags(bool &bCurValue)
{
bCurValue = (QueryStatus(IDM_SHOWAREATAGS) & OLECMDF_LATCHED) != 0;
return S_OK;
}
HRESULT CHtmlEditCtrl2::SetShowAreaTags(bool bNewValue)
{
return ExecHelperSetVal(IDM_SHOWAREATAGS, bNewValue);
}
HRESULT CHtmlEditCtrl2::GetShowCommentTags(bool &bCurValue)
{
bCurValue = (QueryStatus(IDM_SHOWCOMMENTTAGS) & OLECMDF_LATCHED) != 0;
return S_OK;
}
HRESULT CHtmlEditCtrl2::SetShowCommentTags(bool bNewValue)
{
return ExecHelperSetVal(IDM_SHOWCOMMENTTAGS, bNewValue);
}
HRESULT CHtmlEditCtrl2::GetShowMiscTags(bool &bCurValue)
{
bCurValue = (QueryStatus(IDM_SHOWMISCTAGS) & OLECMDF_LATCHED) != 0;
return S_OK;
}
HRESULT CHtmlEditCtrl2::SetShowMiscTags(bool bNewValue)
{
return ExecHelperSetVal(IDM_SHOWMISCTAGS, bNewValue);
}
HRESULT CHtmlEditCtrl2::Undo()
{
return ExecHelperNN(IDM_UNDO);
}
HRESULT CHtmlEditCtrl2::Redo()
{
return ExecHelperNN(IDM_REDO);
}
HRESULT CHtmlEditCtrl2::Find()
{
return ExecHelperNN(IDM_FIND);
}
HRESULT CHtmlEditCtrl2::ShowSource()
{
return ExecHelperNN(IDM_VIEWSOURCE);
}
HRESULT CHtmlEditCtrl2::SubScriptSelectedText()
{
return ExecHelperNN(IDM_SUBSCRIPT);
}
HRESULT CHtmlEditCtrl2::SuperScriptSelectedText()
{
return ExecHelperNN(IDM_SUPERSCRIPT);
}
HRESULT CHtmlEditCtrl2::ShowIEOptionsDialog()
{
return ExecHelperNN(IDM_OPTIONS);
}
HRESULT CHtmlEditCtrl2::GetShowScriptTags(bool &bCurValue)
{
bCurValue = (QueryStatus(IDM_SHOWSCRIPTTAGS) & OLECMDF_LATCHED) != 0;
return S_OK;
}
HRESULT CHtmlEditCtrl2::SetShowScriptTags(bool bNewValue)
{
return ExecHelperSetVal(IDM_SHOWSCRIPTTAGS, bNewValue);
}
HRESULT CHtmlEditCtrl2::GetShowStyleTags(bool &bCurValue)
{
bCurValue = (QueryStatus(IDM_SHOWSTYLETAGS) & OLECMDF_LATCHED) != 0;
return S_OK;
}
HRESULT CHtmlEditCtrl2::SetShowStyleTags(bool bNewValue)
{
return ExecHelperSetVal(IDM_SHOWSTYLETAGS, bNewValue);
}
HRESULT CHtmlEditCtrl2::GetShowUnknownTags(bool &bCurValue)
{
bCurValue = (QueryStatus(IDM_SHOWUNKNOWNTAGS) & OLECMDF_LATCHED) != 0;
return S_OK;
}
HRESULT CHtmlEditCtrl2::SetShowUnknownTags(bool bNewValue)
{
return ExecHelperSetVal(IDM_SHOWUNKNOWNTAGS, bNewValue);
}
HRESULT CHtmlEditCtrl2::GetShowBRTags(bool &bCurValue)
{
bCurValue = (QueryStatus(IDM_SHOWWBRTAGS) & OLECMDF_LATCHED) != 0;
return S_OK;
}
HRESULT CHtmlEditCtrl2::SetShowBRTags(bool bNewValue)
{
return ExecHelperSetVal(IDM_SHOWWBRTAGS, bNewValue);
}
HRESULT CHtmlEditCtrl2::PrintDocument()
{
return ExecHelperNN(IDM_PRINT);
}
HRESULT CHtmlEditCtrl2::PrintDocument(LPCTSTR szPrintTemplate)
{
return ExecHelperSetVal(IDM_PRINT, szPrintTemplate);
}
HRESULT CHtmlEditCtrl2::PrintDocument(bool bShowPrintDialog)
{
return ExecHelperSetVal(IDM_PRINT, (short)(bShowPrintDialog ? 1 : 0));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -