国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

控制VC++.NET中WEB對話框的HTML元素屬性

2024-07-10 12:59:21
字體:
來源:轉載
供稿:網友
vc++.net一個令人耳目一新的特性就是基于動態html的web對話框,它使得桌面程序界面和功能變得更容易實現。這里將對web對話框中html元素的css屬性控制作探討。

  一、在html編輯器中設置元素的css屬性

  css最早出現于1996年,全稱為:層疊樣式表(cascading stylesheets)。由于它在字體、樣式、風格等方面的突出表現使它迅速在網頁制作中流行起來。它可以精確控制頁面文字效果,最重要的是很多瀏覽器和平臺都支持它,而且編碼簡短,頁面下載快。

  在vc++.net的html編輯器中,可以方便為某個html元素設置css樣式,具體操作如下:

  (1) 先選定某個html元素,打開其屬性(properties)窗口,找到其style項,如圖1所示。



  (2) 單擊該項右邊的browse(...)按鈕,彈出圖2的style builder對話框,分別可以對字體(font)、背景(background)、文本(text)、定位(position)、布局(layout)、邊框(edges)、列表(lists)以及其他外觀屬性進行設置。



  使用style builder對話框的最大優點就是在于不需要知道css的語法結構就可以調整html元素的css樣式。限于篇幅,這里僅對最常用的字體、背景和文本屬性進行闡述。

  1、字體屬性

  style builder對話框的font頁面提供如下幾個字體屬性:

  (1) 字樣名(fong name)

  字樣名可以使用family和system font選項,選中family項可單擊右邊的browse(...)按鈕來添加一個新的字體,而選中system font,則可在右側的組合框中選擇其中的某項,具體各項含義如下:

  window caption : 使用窗口標題的文本字體

  toolwindow caption : 使用工具窗口標題的文本字體

  dialog text : 使用對話框中的文本字體

  icon labels : 使用工具窗口標題的文本字體

  menu text : 使用菜單文本的字體

  tooltip text : 使用提示文本的字體

  (2) 字體特性(font attributes)

  字體特性包括顏色(color)、斜體(italics)和小型大寫字母(small caps)等,其中,顏色特性最為豐富,不僅可以通過組合框選擇aqua(淺綠色)、black(黑色)、blue(藍色)、fuchsia(紫紅色)、gray(灰色)、green(綠色)、lime(酸橙色)、maroon(栗色)、navy(海藍色)、olive(橄欖色)、purple(紫色)、red(紅色)、silver(銀灰色)、teal(茶色)、white(白色)和yellow(黃色)中的任意一種顏色,而且可以單擊右邊的browse(...)按鈕來添加一個新的顏色,圖3就是其中的顏色對話框,它有web調色板(web palette)、已命名的顏色(named colors)、系統顏色(system colors)和自定義顏色(custom color)等頁面。



  (3) 大小(size)

  設置html元素的字體尺寸,默認值為absolute的medium值。它有三個選項:

  specific : 直接指定字體尺寸,它取決于單位和相應的數值。它的單位有:

   px —— 像素(pixel),相對單位。wondows的用戶所使用的分辨率一般是96像素/英寸。

   pt —— 點(point),絕對單位。

   pc —— 派卡(pica),絕對單位。相當于我國新四號鉛字的尺寸。

   mm、cm、in —— 毫米、厘米、英寸。

   em —— 相對單位。相對于當前對象內文本的字體尺寸。如當前對行內文本的字體尺寸未被人為設置,則相對于瀏覽器的默認字體尺寸。

   ex —— 相對單位。相對于字符“x”的高度。此高度通常為字體尺寸的一半。如當前對行內文本的字體尺寸未被人為設置,則相對于瀏覽器的默認字體尺寸。

   % —— 相對單位。相對于當前對象內文本的字體尺寸的百分比。

  上述單位之間的部分換算關系為:1 in = 2.54 cm = 25.4 mm = 72 pt = 6 pc 。

   absolute : 根據對象字體進行大小調節,它有這樣幾個選項:xx-small(最小)、x-small(較小)、small(小)、medium(中)、large(大)、x-large(較大)、xx-large(最大)。

   relative : 相對于父對像中字體尺寸進行相對調節。使用成比例的em單位計算。它有這樣兩個選項:larger(較大)、smaller(較小)。

  (4) 粗細(bold)

  設置html元素中的文本字體的粗細。需要說明的是,它的具體結果由用戶端系統安裝的字體的特定字體變量映射來決定。也就是說,用戶可能看不到不同值之間的差異。

  它有absolute和relative兩個選項,包含有normal(正常的字體)、bold(粗體)、bolder(特粗體)和lighter(細體)等項。

  (5) 其他字體效果(effects)

  這主要有underline(下劃線)、strikethrough(刪除線)、overline(上劃線)、capitalization(大小寫)。其中,capitalization還有initial cap(首字符大寫)、lowercase(全部小寫)和uppercase(全部大寫)等選項。

  2、背景屬性

  style builder對話框的background頁面可對元素進行背景顏色和背景圖像的設置,如圖4所示。其中,背景顏色除了可以設置其透明色(transparent)外,其他同字體的顏色屬性。這里對背景圖像的相關設置作闡述。



  當單擊image框右邊browse(...)按鈕從外部調入一個圖像文件后,就可對其進行平鋪(tiling)、滾動(scrolling)以及位置(position)進行設置。

  平鋪主要有在水平方向平鋪(tile in horizontal direction)、在垂直方向平鋪(tile in vertical direction)、在水平和垂直方向平鋪(tile in both directions) 以及不平鋪(do not tile)等幾個選項。

  滾動有scrolling background和fixed background兩項,分別表示背景圖像是隨元素內容滾動還是固定。

  位置屬性分別就水平(horizontal)和垂直(vertical)方向進行left(靠左)、center(居中)、right(靠右)以及top(向上)、center(居中)、bottom(向下)布置;特別地,還可選擇其custom(自定義)選項,來定義具體的背景圖像的位置。
1) 對齊方式(alignment)

  在水平方向(horizontal)的對齊方式表現為:left(左對齊)、centered(中間對齊)、right(右對齊)和justified(兩端對齊),而在垂直方向表現為subscript text(垂直對齊文本的下標)和supperscript text(垂直對齊文本的上標)。

  若在水平對齊方式選中justified,還可有下列選項:

  auto : 自動調整兩端對齊

  space words : 通過增加字之間的空格對齊文本。

  newspaper style : 通過增加或減少字或字母之間的空格對齊文本。

  distribute spacing : 處理空格很像newspaper,適用于東亞文檔。

  distribute all lines : 兩端對齊行的方式與distribute相同,適用于表意字文檔。

  (2) 字距和行距

  字距(letters)與行距(lines)的調整相似,都有normal(正常)和custom(自定義)兩項,若選中custom,則可在右邊設置具體的間距大小。

  (3) 文本流(text flow)

  文本流包括indentation(縮進)和text direction(文本方向)兩個屬性。其中,文本方向可以有left to right(從左到右)和right to left(從右到左)兩個選項。

  需要說明的是,以上的屬性設置都有會在對話框下面的預覽框看到相應的結果。

  二、在程序中獲取和改變元素的css屬性

  在web對話框類中獲取和改變元素的css屬性,可使用ihtmlelement接口,它提供了有關html元素的許多方法,其中get_style就是用來處理包括css在內的屬性,它的原型如下:

   hresult get_style( ihtmlstyle **p );

  其中,p是ihtmlstyle指針變量,ihtmlstyle也是一個接口是用來提供獲取和設置具體屬性的方法。例如get_color和put_color是用來獲取和設置元素的顏色,它們的原型如下:

  hresult get_color( variant *p );

  hresult put_color( variant v );

其中,variant是與絕大多數數據類型相兼容的一種類型,使用時要注意設置variant變量的具體類型。

  下面的例子是當鼠標劃過一段文字時,其顏色從紅色變成藍色,具體步驟如下:

  (1) 選擇file菜單->new菜單->project命令,創建一個基于web對話框的ex_dlg方案工程(詳細過程這里略)。

  (2) 切換到方案導航區的resource view窗口,展開html項,雙擊idr_html_ex_dlg_dialog項,這時就在文檔窗口中顯示相應的html模板。

  (3) 刪除html模板中所有缺省的元素(包括ok和cancel按鈕),雙擊html工具箱的linear layout panel按鈕,在html頁面中添加一個直線面板,在其中添加文字:"當你用鼠標劃過這段文字時,看看有什么變化?"。

  (4) 在屬性窗口中將上述添加的面板的id號改為div1,再單擊style項右邊的browse(...)按鈕,將其文字顏色設置為紅色(red)。

  (5) 打開web對話框類cex_dlgdlg文件ex_dlgdlg.cpp,在文件的前面找到begin_dhtml_event_map(cex_dlgdlg)與end_dhtml_event_map()之間的程序段,然后添加下列代碼:

  dhtml_event_onmouseover(_t("div1"),onmouseoverdiv1)

  dhtml_event_onmouseout(_t("div1"),onmouseoutdiv1)

  其中事件映射宏dhtml_event_onmouseover和dhtml_event_onmouseout分別用來映射鼠標移至和移出的事件。

  (6) 打開頭文件ex_dlgdlg.h,添加下面的事件映射函數的聲明,并且添加成員變量m_varcolor用來保存原來的顏色值:

public:
variant m_varcolor;
...
protected:
...
hresult onmouseoverdiv1(ihtmlelement *pelement);
hresult onmouseoutdiv1(ihtmlelement *pelement);


  (7) 再切換到ex_dlgdlg.cpp窗口,在程序的最后添加下列代碼:

hresult cex_dlgdlg::onmouseoverdiv1(ihtmlelement *pelement)
{
ihtmlstyle *phtmlstyle;
pelement->get_style(&phtmlstyle);
if (phtmlstyle)
{
variant varcolor;
varcolor.vt = vt_i4;
varcolor.lval = 0x0000ff;
phtmlstyle->get_color(&m_varcolor);
phtmlstyle->put_color(varcolor);
phtmlstyle->release();
}

return s_ok;
}

hresult cex_dlgdlg::onmouseoutdiv1(ihtmlelement *pelement)
{
ihtmlstyle *phtmlstyle;
pelement->get_style(&phtmlstyle);
if (phtmlstyle)
{
phtmlstyle->put_color(m_varcolor);
phtmlstyle->release();
}

return s_ok;
}


  (8) 編譯并運行,然后看看當鼠標劃過那段文字后,顏色是不是會有變化?當移出時,顏色是不是以恢復到原來的紅色?



  至此,通過以上的方法和技巧,我們就可以對html元素屬性進行設置和程序控制。要提出來的是,在visual c++.net的beta 1版中,web對話框類cdhtmldialog的getelementproperty和setelementproperty好像并能有效獲取和設置html元素的屬性。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麟游县| 南丰县| 泽普县| 嘉荫县| 全椒县| 天全县| 佛学| 崇信县| 乾安县| 湾仔区| 丹巴县| 秦皇岛市| 赤城县| 鹤庆县| 治多县| 武穴市| 乃东县| 页游| 彩票| 常德市| 施秉县| 焉耆| 简阳市| 广州市| 郁南县| 涟源市| 金平| 五莲县| 吐鲁番市| 定兴县| 道孚县| 临潭县| 安陆市| 青浦区| 青冈县| 温州市| 曲周县| 聊城市| 霍邱县| 常熟市| 威海市|