亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chtmleditor.h

?? 用visual c++寫的一個超文本編輯器
?? H
?? 第 1 頁 / 共 2 頁
字號:

// ************************************************************************
// Internet Explorer HTML Access class written by Elm黃oft for Code Project
//                          www.elmue.de.vu
//                          kickme.to/elmue
// ************************************************************************

#if !defined(HTML_EDITOR_H__AF3E29B6_2B28_46D0_9D37_74D6C9E41B4A__INCLUDED_)
#define HTML_EDITOR_H__AF3E29B6_2B28_46D0_9D37_74D6C9E41B4A__INCLUDED_

#pragma once

#include <atlbase.h>          // CComPtr
#include <afxhtml.h>          // CHtmlView
#include "VS7/mshtml_VS7.h"   // IHTMLDomNode etc..
#include "VS7/MsHtmcid_VS7.h" // IDM_JUSTIFYLEFT etc..

#define WM_IDLEUPDATECMDUI  0x0363

#define _HKLM  HKEY_LOCAL_MACHINE
#define _HKCU  HKEY_CURRENT_USER
#define _HKCR  HKEY_CLASSES_ROOT

#if _MSC_VER > 1200 // > Visual Studio 6.0
#error "This code is written for Visual Studio 6. Download the version for Visual Studio 7 instead from CodeProject.com!"
#endif

#define HTMLEDIT_INIT_DONE   5000
#define HTMLEDIT_UPDATE_UI   5001
#define HTMLEDIT_KILLFOCUS   5002
#define HTMLEDIT_SETDEFAULT  5003
#define HTMLEDIT_NAVIGATED   5004
#define IDM_FONTSIZE_STYLE   5005
#define ID_TIMER_WAIT_BUSY   5006

class CHtmlEditor : public CHtmlView
{
public:

	// Forward declarations of embedded classes
	class cHtmlStyle;
	class cHtmlStyleSheet;
	class cHtmlDomNode;
	class cHtmlElement;
	class cHtmlTableCell;
	class cHtmlTableRow;
	class cHtmlTable;
	class cHtmlHR;
	class cHtmlImg;
	class cHtmlDocument;

	class CUniRichEdit;
	class cMisc;
	class CMsieWnd;
	class cStreamReader;

	// ####################################################

	class cMisc
	{
	public:
		static CString DecodeMime(CString s_Text);
		static CString EncodeHtml(BSTR bs_Html);
		static void    EncodeHtml(const WCHAR *u16_In, UINT *pu32_WcharToCopy, char *s8_Out, UINT *pu32_OutSize);
		static CString VarToStr(CComVariant &v_Variant);
		static CString RemoveTag(CString s_Html, CString s_Tag);
		static CString CutString(CString s_In, CString s_Cut, BOOL b_End);
		static void    RegWriteString(HKEY h_Class, CString s_Path, CString s_Key, CString s_Value);
		static void    RegWriteDword (HKEY h_Class, CString s_Path, CString s_Key, DWORD u32_Value);
	};

	// ####################################################

	// These definitions must have the same order as enum eProp !
	// C2059: syntax error : 'string' is caused by a
	// Compiler bug: Don't put a space behind "\" here !!!!!!!!!!
	#define __StyleNames { _T("background-color:"), \
	                       _T("color:"),            \
	                       _T("border:"),           \
	                       _T("border-width:"),     \
	                       _T("border-style:"),     \
	                       _T("font-size:"),        \
	                       _T("font-family:"),      \
	                       _T("width:"),            \
	                       _T("height:"),           \
	                       _T("text-decoration:") }

	class cHtmlStyle : public cMisc
	{
	public:
		enum eProp
		{
			E_BackgColor = 0,
			E_ForeColor,   // text color
			E_Border,
			E_BorderWidth,
			E_BorderStyle,
			E_FontSize,
			E_FontFamily,
			E_Width,
			E_Height,
			E_Decoration,
			// to be expanded here.. (update also __StyleNames !!)
		};

		cHtmlStyle(CComPtr<IHTMLStyle>     i_Style);
		cHtmlStyle(CComPtr<IHTMLRuleStyle> i_RuleStyle);

		virtual BOOL Valid();
		CString GetProperty(eProp e_Prop);
		BOOL SetProperty(eProp e_Prop, CString s_Value);

	protected:
		CComPtr<IHTMLStyle>     mi_Style;
		CComPtr<IHTMLRuleStyle> mi_RuleStyle;
	};


	// ####################################################

	class cHtmlStyleSheet : public cMisc
	{
	public:
		cHtmlStyleSheet(CComPtr<IHTMLStyleSheet> i_Sheet);

		virtual BOOL Valid();
		cHtmlStyle GetRule(CString s_Selector);
		BOOL SetProperty(CString s_Selector, cHtmlStyle::eProp e_Prop, CString s_Value);

	protected:
		BOOL AddRule(CString s_Selector, cHtmlStyle::eProp e_Prop, CString s_Value);

		CComPtr<IHTMLStyleSheet>                mi_Sheet;
		CComPtr<IHTMLStyleSheetRulesCollection> mi_Collect;
	};


	// ####################################################

	class cHtmlDomNode : public cMisc
	{
	public:
		cHtmlDomNode(CComPtr<IHTMLDOMNode> i_Dom);

		virtual BOOL Valid();
		cHtmlElement NextSibling();
		cHtmlElement PreviousSibling();
		BOOL Remove();
		BOOL Strip();
		cHtmlElement AppendChild(cHtmlElement i_NewChild);

	protected:
		CComQIPtr<IHTMLDOMNode, &IID_IHTMLDOMNode> mi_Dom;
	};


	// ####################################################

	class cHtmlElement : public cHtmlDomNode
	{
	public:
		cHtmlElement(CComPtr<IHTMLElement> i_Elem);
		const cHtmlElement& operator=(const cHtmlElement& El);
		operator CComPtr<IHTMLElement>();

		virtual BOOL Valid();
		CString GetTagName();
		CString GetClassName();
		cHtmlElement GetParent();
		UINT GetChildCollection(CComQIPtr<IHTMLElementCollection> &i_Collect);
		cHtmlElement FindParent(CString s_Tag);
		cHtmlElement SkipParents(CString s_Tags);
		CString GetAttribute(CString s_AttrName);
		BOOL SetAttribute(CString s_AttrName, CString s_Value);
		BOOL RemoveAttribute(CString s_AttrName);
		CString GetInnerText();
		BOOL SetInnerHtml(CString s_Html);
		BOOL IsEmpty();
		CString GetInnerHtml();
		CString GetOuterHtml();
		BOOL InsertHtml(CString s_Html, BOOL b_AtBegin, BOOL b_Inside);
		cHtmlStyle GetStyle();
		cHtmlElement AppendNewChild(CString s_Tag);

		static cHtmlElement GetElementFromCollection(UINT u32_Index, CComQIPtr<IHTMLElementCollection> &i_Collect);

	protected:
		CComQIPtr<IHTMLElement, &IID_IHTMLElement> mi_Elem;
	};

	// ####################################################

	class cHtmlTableCell : public cHtmlElement
	{
	public:
		cHtmlTableCell(CComPtr<IHTMLElement> i_Elem);

		virtual BOOL Valid();
		cHtmlTableRow GetParentRow();
		cHtmlTable    GetParentTable();
		BOOL SetColSpan(UINT Span);
		UINT GetCellIndex();
		UINT GetColIndex();
		UINT GetRowIndex();
		UINT GetColSpan();
		UINT GetRowSpan();
		BOOL Combine();
		void Split();
		BOOL SetInnerHtml(CString s_Html);
		void    SetBgColor(CString s_Color);
		CString GetBgColor();

	protected:
		CComQIPtr<IHTMLTableCell, &IID_IHTMLTableCell> mi_Cell;
	};

	// ####################################################

	class cHtmlTableRow : public cHtmlElement
	{
	public:
		cHtmlTableRow(CComPtr<IHTMLElement> i_Elem);

		virtual BOOL Valid();
		UINT GetCellCount();
		UINT GetRowIndex();
		BOOL DeleteCell(UINT Index);
		BOOL DeleteColumn(UINT Index);
		cHtmlTableCell InsertColumn(UINT Index);
		cHtmlTableCell GetCell     (UINT Index);
		cHtmlTableCell GetColumn   (UINT Index, BOOL b_ReturnPrevious =FALSE);
		cHtmlTableCell InsertCell  (UINT Index);
		cHtmlTable GetParentTable();

	protected:
		CComQIPtr<IHTMLTableRow, &IID_IHTMLTableRow> mi_Row;
	};

	// ####################################################

	class cHtmlTable : public cHtmlElement
	{
	public:
		enum eRules // Table border
		{
			E_RulesAll  = 0,  // Horizontal lines, vertical lines and box
			E_RulesHor  = 1,  // Horizontal lines and box
			E_RulesVert = 2,  // Vertikal   lines and box
			E_RulesBox  = 3   // Only Box (border around)
		};
		cHtmlTable(CComPtr<IHTMLElement> i_Elem);

		virtual BOOL Valid();
		CString GetBgColor();
		void SetBgColor(CString s_Color);
		BOOL DeleteRow(UINT Index);
		BOOL DeleteColumn(UINT Index);
		cHtmlTableRow GetRow   (UINT Index);
		cHtmlTableRow InsertRow(UINT Index, int CellCount);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品三区四区| 精品久久久久久综合日本欧美| 麻豆精品一区二区综合av| 亚洲欧洲www| 国产精品欧美经典| 国产精品素人一区二区| 国产日韩欧美精品一区| 久久精品综合网| 久久久亚洲精品一区二区三区| 日韩视频一区二区在线观看| 欧美老女人第四色| 91精品国产入口在线| 日韩欧美久久久| 日韩视频永久免费| 26uuu亚洲| 国产精品久久久久影院色老大| 国产精品蜜臀在线观看| 日韩伦理av电影| 尤物视频一区二区| 日韩电影免费在线看| 日产国产高清一区二区三区| 看电影不卡的网站| 成人网男人的天堂| 91极品美女在线| 日韩一卡二卡三卡国产欧美| 久久久精品综合| 亚洲美女电影在线| 丝袜亚洲另类欧美综合| 国产一区在线不卡| 91在线视频网址| 欧美日韩一区二区在线观看视频 | 色婷婷综合久久久中文字幕| 色综合久久中文综合久久97| 欧美一区二区三区免费大片 | 国产蜜臀av在线一区二区三区| 亚洲精品网站在线观看| 免费在线看成人av| 不卡av免费在线观看| 欧美日韩成人综合天天影院| 欧美国产精品中文字幕| 天堂影院一区二区| 粉嫩在线一区二区三区视频| 欧美日本在线一区| 国产精品久久久久久户外露出| 亚洲综合免费观看高清完整版在线| 九九**精品视频免费播放| 91黄色免费看| 国产午夜精品一区二区 | 久久久精品国产免大香伊| 青青草伊人久久| 成人av在线电影| 正在播放亚洲一区| 自拍偷拍欧美精品| 国产成人免费视频| 日韩免费高清av| 一区二区三区不卡在线观看| 国产精品白丝av| 欧美本精品男人aⅴ天堂| 亚洲一区二区三区爽爽爽爽爽| 国产suv精品一区二区883| 亚洲精品在线观看视频| 免费在线观看视频一区| 色av一区二区| 亚洲日本一区二区三区| 国产成人在线看| 精品少妇一区二区三区在线播放| 亚洲一区二区三区四区在线| 一本到一区二区三区| 国产精品久久久久久久久搜平片| 久久99九九99精品| 欧美一级日韩免费不卡| 午夜电影网亚洲视频| 欧美主播一区二区三区美女| 亚洲美女视频在线观看| 99久久久久免费精品国产| 国产精品日韩成人| 成人性生交大片| 国产精品拍天天在线| 国产成人av电影在线| 国产欧美精品一区二区色综合| 国产在线视频一区二区三区| wwww国产精品欧美| 国产精品影视在线| 欧美激情一区二区三区四区| 国产不卡视频一区| 亚洲美女屁股眼交3| 91捆绑美女网站| 一区二区三区.www| 色哟哟一区二区| 午夜精品aaa| 日韩一级完整毛片| 国产呦萝稀缺另类资源| 国产精品天天看| 色94色欧美sute亚洲线路一ni| 亚洲一区二区三区四区的 | 极品少妇一区二区三区精品视频 | 美腿丝袜在线亚洲一区| 91精品在线一区二区| 激情成人午夜视频| 国产精品国产三级国产三级人妇 | 国产在线不卡一卡二卡三卡四卡| 久久精品一二三| 91亚洲国产成人精品一区二区三| 亚洲欧洲日本在线| 欧美日韩国产首页| 国产精品一区二区久久不卡| 综合在线观看色| 欧美一区二区三区性视频| 国产伦精品一区二区三区视频青涩| 亚洲国产成人在线| 欧美视频一区二区| 国产精品自拍三区| 亚洲综合久久久久| 久久综合狠狠综合久久综合88 | 国产乱码精品一区二区三| 中文字幕在线不卡视频| 欧美挠脚心视频网站| 国产精品综合二区| 爽爽淫人综合网网站| 国产精品福利一区| 欧美一区二区福利在线| aaa国产一区| 激情综合色综合久久综合| 亚洲永久免费视频| 久久久久久久av麻豆果冻| 在线观看免费一区| 国产激情一区二区三区| 天堂影院一区二区| 一区二区三区视频在线观看| 久久久久久久久久久久电影| 欧美精品乱码久久久久久按摩| 成人v精品蜜桃久久一区| 青娱乐精品视频| 午夜精品久久久久久久蜜桃app| 中文字幕av不卡| 久久只精品国产| 日韩一二三区视频| 欧美另类高清zo欧美| 91激情在线视频| 99精品一区二区三区| 国产精品中文字幕日韩精品 | 青青青爽久久午夜综合久久午夜| 亚洲人吸女人奶水| 国产精品久久久久久久久久久免费看 | 久久影院电视剧免费观看| 欧美女孩性生活视频| 欧美午夜在线观看| 色婷婷国产精品久久包臀| 成人app软件下载大全免费| 国产成人日日夜夜| 国产精品18久久久久| 国产一区 二区 三区一级| 久久不见久久见中文字幕免费| 婷婷六月综合亚洲| 日韩高清不卡一区| 日韩成人一级大片| 三级亚洲高清视频| 美国毛片一区二区| 蜜乳av一区二区三区| 久久成人免费电影| 国产91高潮流白浆在线麻豆| 大桥未久av一区二区三区中文| 成人三级伦理片| 91社区在线播放| 欧美三级中文字幕| 欧美一区二区三区成人| 欧美成人乱码一区二区三区| 精品日韩成人av| 日本一区二区三区四区| 中文字幕在线一区| 樱花草国产18久久久久| 午夜视频在线观看一区| 久久精品国产免费看久久精品| 国产一区二区三区国产| jvid福利写真一区二区三区| 在线看一区二区| 日韩欧美一级二级三级久久久| 久久在线观看免费| 亚洲激情中文1区| 日本亚洲三级在线| 国产成人免费视| 欧美日韩三级在线| 精品久久久久久无| 中文字幕av一区二区三区| 亚洲一区二区美女| 国产一区二区三区免费看 | aaa欧美色吧激情视频| 欧美精选在线播放| 久久精品欧美一区二区三区不卡 | 日韩一区二区免费高清| 国产精品免费av| 日本vs亚洲vs韩国一区三区二区| 国产寡妇亲子伦一区二区| 在线观看91视频| 国产日韩精品一区二区三区| 无码av免费一区二区三区试看| 国产成人亚洲精品青草天美| 欧美另类z0zxhd电影| 亚洲天堂精品视频| 久久国产精品色婷婷|