線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2632
推到 Plurk!
推到 Facebook!

用IHTMLDocument2 編輯模式取得字型狀態問題

缺席
icewind123
一般會員


發表:1
回覆:1
積分:0
註冊:2006-08-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-10 19:23:58 IP:59.120.xxx.xxx 訂閱
我用cppwebbrowser 來編輯Html文件,想做到向一般編輯軟體一樣字型游標會根據游標所在的字體,辨別粗體或斜體
所以我在IHTMLDocument 2的 On key up,和 On Mouse Up的事件裡做了以下判斷

IHTMLDocument2 *Doc2=NULL;
VARIANT_BOOL fRet;

Webbrowser1->Document->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&Doc2);
Doc2->queryCommandState(L"Bold",&fRet);
m_bBold = (fRet==VARIANT_TRUE)?TRUE:FALSE;


可是確有一個怪問題產生了,在aaaaaBBBBB 這種情況
用滑鼠點選aB中間,照理說應該要回傳不是粗體才對阿(因為在這情況打字的話,新字沒有粗體)

可是queryCommandState卻回傳true ,而同樣的情況鍵盤keyup則會正常

真的很奇怪呢,有人知道如何解決此問題嗎?
icewind123
一般會員


發表:1
回覆:1
積分:0
註冊:2006-08-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-14 16:46:56 IP:59.120.xxx.xxx 訂閱
...已解決了^^ 

===================引 用 文 章===================
?我用cppwebbrowser 來編輯Html文件,想做到向一般編輯軟體一樣字型游標會根據游標所在的字體,辨別粗體或斜體
? 所以我在IHTMLDocument 2的 On key up,和 On Mouse Up的事件裡做了以下判斷?

? IHTMLDocument2 *Doc2=NULL;
?? VARIANT_BOOL fRet;

? Webbrowser1->Document->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&Doc2);
?? Doc2->queryCommandState(L"Bold",&fRet);
?? m_bBold = (fRet==VARIANT_TRUE)?TRUE:FALSE;

???
可是確有一個怪問題產生了,在aaaaaBBBBB 這種情況
用滑鼠點選aB中間,照理說應該要回傳不是粗體才對阿(因為在這情況打字的話,新字沒有粗體)

?可是queryCommandState卻回傳true ,而同樣的情況鍵盤keyup則會正常

真的很奇怪呢,有人知道如何解決此問題嗎?
joycat
一般會員


發表:4
回覆:6
積分:2
註冊:2004-02-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-03-17 16:44:51 IP:59.125.xxx.xxx 訂閱
請問 您是用哪一種方法 改變 瀏覽器內的 文字顯示方式?
找了好一段時間 只找到 重置內容的方法~"~

另外 你的問題 所取得的 fRet
是 base 0 還是 base 1 ?

像是 BCB 的元件中
DBComboBox 的 Text.Pos 是 從0開始
ComboBox 的 Text.Pos 是 從1開始
長的很像的兩樣東西 有不一樣的寫法?
編輯記錄
joycat 重新編輯於 2008-03-17 16:50:33, 註解 無‧
系統時間:2024-03-29 13:17:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!