2012-02-07 29 views
0

我正在使用MSHTML上的HTML編輯控件構建。強制使用IHTMLDocument的粗體

我需要能夠強制文本爲粗體/不透明,並且找不到一個簡單的方法來執行此操作。

我可以切換大膽的狀態如下:

(D as IHTMLDocument2).execCommand('Bold', False, EmptyParam); 

我可以大膽的狀態如下:

bIsBold := (D as IHTMLDocument2).queryCommandValue('Bold'); 

現在當然你會說,好了廢話,只是得到了大膽的地位和然後如果需要切換它。

不幸的是,所選文本實際上可能有三種狀態:不是粗體/部分粗體/全是粗體,所以我在查詢它之前不得不盲目切換狀態,以確保它只處於兩個已知狀態:不是大膽/全部膽大。這是相當醜陋的,所以我想知道我是否缺少明顯的東西。

由於IA

+0

您不能查詢第一個字符是否爲粗體?並相應地切換整個文本?在零長度noop的情況下。 – 2012-02-07 00:44:32

+0

對不起喬普,我沒跟着。查詢第一個字符仍然只會給我兩個狀態,「不是粗體」或「全是粗體」。我仍然不知道它是否處於「部分大膽」狀態。 – Xaz 2012-02-08 00:37:24

回答

0

是的,但按大膽開關,然後將發揮作用果然(如果知道)。像其他編輯一樣。

+0

是的,我對Bold按鈕的工作方式感到滿意,但我想要做的是將樣式從一個位置複製到另一個位置(即格式繪畫)。這需要有一個可靠的方法來加固物品(以及加下劃線,斜體等)。 – Xaz 2012-02-08 20:36:40

+0

好吧,我知道沒有解決方案。 – 2012-02-09 07:39:38