第一篇:在VB中用顏色漸變技術(shù)制作幻影字
在VB中用顏色漸變技術(shù)制作幻影字
馬致明
新疆師范大學(xué)數(shù)理信息學(xué)院
制作出別具一格的特效字來為軟件增色,是許多軟件開發(fā)者的追逐目標(biāo)。但是,一般軟件界面中的特效字都是用其它專門工具制作成圖片后添加進(jìn)來的,既降低了控制的靈活性,又增加了資源開銷。能否在程序中直接實(shí)現(xiàn)文字特效呢?為此,筆者經(jīng)過反復(fù)實(shí)踐,探索出一種與眾不同的特效字制作方法,現(xiàn)將其奉獻(xiàn)給各位編程愛好者。
一. 編程思路
用顏色漸變技術(shù)來控制文字的顏色、用錯(cuò)位疊加法控制文字輸出的位置是本文的基本思路。具體作法是:用循環(huán)方式在不同位置上用不同顏色顯示同一字串,循環(huán)時(shí)顏色由背景色漸變到字幕色,沿同一方向錯(cuò)位疊加后便形成亦真亦虛、縹緲虛幻的效果(見效果圖)。其關(guān)鍵又在于漸變色的計(jì)算和控制。1.從基色中獲取三元色分量值
獲取漸變色要借助RGB(red,green,blue)函數(shù)。調(diào)色板及系統(tǒng)顏色用的是長整數(shù)表示法,其中低字節(jié)描述的是紅色,次字節(jié)描述的是綠色,第三個(gè)字節(jié)描述的是藍(lán)色,高字節(jié)未用;若顏色值為C,則各色分量值依次為:
red=C Mod 256
green=C 256 Mod 256 blue=C 256^2
2.漸變色三元色分量值的計(jì)算方法
假定基色A和基色B的三元色分量值依次為Ar、Ag、Ab和Br、Bg、Bb,若想從A色經(jīng)過N種顏色漸變到B色,則第i種漸變色的三元色分量值可采用以下計(jì)算方法:
red=Ar+(Br-Ar)* i / N green=Ag+(Bg-Ag)* i /N blue=Ab+(Bb-Ab)* i / N 其中,i的取值范圍為:0,1,2,3,??,N。3.陰影的控制方法
錯(cuò)位疊加輸出時(shí),依需要控制好陰影的深度和角度。深度可用N來控制,角度可用輸出位置的X、Y坐標(biāo)的增減來控制;如X增Y減,則陰影在左下,如X減Y增,則陰影在右上等。
二.程序介紹
1.功能
本文介紹的這則程序,用戶介面中提供了“背景色”和“字幕色”兩個(gè)命令按鈕,用以選擇相應(yīng)顏色,一個(gè)滾動(dòng)條用于調(diào)整陰影的深度,一個(gè)標(biāo)簽用于呈現(xiàn)深度值。選擇不同顏色和深度,可以制作出各種似虛似實(shí)的幻影字,效果非常理想。滾動(dòng)條調(diào)整后,要稍等片刻(1至2秒)才能出現(xiàn)新的效果,因?yàn)橛?jì)算和輸出工作量較大。2.窗體設(shè)計(jì)
窗體上安置一對(duì)命令鈕控件數(shù)組,取名為“顏色”,標(biāo)題分別為“背景色”和“字幕色”;一個(gè)水平滾動(dòng)條,取名為陰影,Min和Max值依次為100和500;此外還有一個(gè)用于顯示陰影深度值的標(biāo)簽“深度”。其它屬性均在代碼中設(shè)置。3.程序代碼(用VB6.0中文版開發(fā))Dim Colors(1)As Long, N As Integer Private Sub Form_Load()
Form1.Top = 0
Form1.Left = 0
Form1.Height = Screen.Height
Form1.Width = Screen.Width
Form1.FontSize = 180
Form1.AutoRedraw = True
Form1.Font = “華文行楷” '默認(rèn)字體
Colors(0)= vbBlue
Colors(1)= vbWhite
N = 400
'控制陰影的深度
幻影字
'顯示效果 End Sub Private Sub 幻影字()Dim i As Integer, R(1)As Integer, G(1)As Integer, B(1)As Integer Dim Red As Integer, Grn As Integer, Blu As Integer Form1.BackColor = Colors(0)深度.ForeColor = Colors(1)Form1.Cls For i = 0 To 1 '獲取背景色、前景色的分量值
R(i)= Colors(i)Mod 256
G(i)= Colors(i)256 Mod 256
B(i)= Colors(i)256 ^ 2 Next i For i = 0 To N Step 2 '用漸變色輸出
Red = R(0)+(R(1)G(0))/ N * i
Blu = B(0)+(B(1)i * 4
Form1.CurrentY = 4000-i * 4
Form1.ForeColor = RGB(Red, Grn, Blu)
Print “幻影字”
'要顯示的內(nèi)容
Next i End Sub Private Sub 顏色_Click(Index As Integer)
CommonDialog1.ShowColor '顯示顏色對(duì)話框
Colors(Index)= CommonDialog1.Color '確定顏色
幻影字 End Sub Private Sub 陰影_Change()
N = 陰影
'改變陰影的深度
深度.Caption = “陰影深度為” & N
幻影字
'顯示效果 End Sub 附:作者簡介:
馬致明、男、回族、63年10月生、碩士,畢業(yè)于四川師范大學(xué),新疆師范大學(xué)物理系微機(jī)教研室副教授,主要從事計(jì)算機(jī)及計(jì)算機(jī)輔助教學(xué)方面的教學(xué)和研究。參加過2項(xiàng)CAI方面的課題,并在《電腦愛好者》、《中國電腦教育報(bào)》、《多媒體世界》、《電腦知識(shí)與技術(shù)》、《實(shí)驗(yàn)教學(xué)與儀器》、《新疆師范大學(xué)學(xué)報(bào)》等九種刊物上發(fā)表了近20篇文章;文章主要涉及計(jì)算機(jī)編程方面的經(jīng)驗(yàn)和技巧。聯(lián)系方法:
通訊地址:新疆師范大學(xué)物理系
830054 電
話:0991-4841601-2582(最好是在早晨9:30之前)E-MAIL :mzm@mail.wl.xj.cn 或ibrahim@tonghua.com.cn
第二篇:在WORD中用VBA制作作文稿紙
在WORD中用VBA制作作文稿紙
語文考試中,經(jīng)常用到作文稿紙,Word中帶有稿紙模板,但有諸多限制(如紙型、行列數(shù)等相對(duì)固定),在試卷排版時(shí)頗為不便。其實(shí),我們可以利用Word的VBA編程,通過繪制表格制作作文稿紙。
一、編制程序
1.啟動(dòng)Word,連續(xù)點(diǎn)擊“工具”,“宏”,“錄制新宏...”,在彈出的對(duì)話框中填寫宏名(此例為“作文稿紙”),選擇宏要保存的位置(可以保存在模板中,也可以保存在當(dāng)前文檔中),如圖1所示。
2.為了方便操作,可以將此宏以按鈕的形式指定在工具欄中。單擊“錄制宏”對(duì)話框中的“工具欄”按鈕,在彈出的“自定義”對(duì)話框的右側(cè),選中宏命令“Normal.NewMacros.作文稿紙”,用鼠標(biāo)將其拖動(dòng)復(fù)制到“常用”工具欄,在其上單擊右鍵,選擇相應(yīng)的命令修改名稱,為其編輯一個(gè)小圖標(biāo),結(jié)果如圖2所示。
3.單擊“錄制宏”對(duì)話框中的“關(guān)閉”按鈕,屏幕上將出現(xiàn)一個(gè)“錄制宏”工具欄,單擊停止按鈕停止錄制。
4.依次選擇“工具”、“宏”、“宏…”,在對(duì)話框中選擇宏名“作文稿紙”,單擊“編輯”按鈕,打開vba編程窗口。錄入如下代碼:
Sub 作文稿紙()UserForm1.CommandButton1.Enabled = True UserForm1.Show End Sub
5.插入一個(gè)窗體UserForm1,在其中插入4個(gè)標(biāo)簽,4個(gè)文本框,一個(gè)按鈕。分別設(shè)置它們的相關(guān)屬性,其中,“行數(shù)”文本框的 “text”屬性值設(shè)為50,“列數(shù)”文本框的“text”屬性值設(shè)為20,“行距”文本框的“text”屬性值設(shè)為0.2,“首尾空行高度”文本框的“text”屬性值設(shè)為0.2,如圖所示。
6.雙擊命令按鈕CommandButton1,錄入以下代碼:
Private Sub CommandButton1_Click()Dim n As Integer '定義一個(gè)變量為整數(shù)型 n = 1 ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=Val(TextBox1.Text)* 2 + 1, NumColumns _ :=Val(TextBox2.Text), DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed Selection.EndKey Unit:=wdRow, Extend:=True Selection.Cells.Borders(wdBorderVertical).LineStyle = wdLineStyleNone Selection.Tables(1).Rows.HeightRule = wdRowHeightExactly '設(shè)定表格行高為固定值
Selection.Tables(1).Rows.Height = CentimetersToPoints(Val(TextBox3.Text))'設(shè)置表格行高為設(shè)置值,作為行間距 Selection.Tables(1).Rows(1).Height = CentimetersToPoints(Val(TextBox4.Text))'設(shè)置第一行行高為設(shè)置值 Do While n < Val(TextBox1.Text)+ 1 Selection.EndKey Unit:=wdLine Selection.MoveRight Unit:=wdCharacter, Count:=2 '將插入點(diǎn)移至下一行
Selection.Tables(1).Rows(2 * n).Height = Selection.Tables(1).Columns(1).PreferredWidth '設(shè)行高等于列寬
Selection.EndKey Unit:=wdRow, Extend:=True Selection.EndKey Unit:=wdLine Selection.MoveRight Unit:=wdCharacter, Count:=2 '將插入點(diǎn)移至下一行
Selection.EndKey Unit:=wdRow, Extend:=True Selection.Cells.Borders(wdBorderVertical).LineStyle = wdLineStyleNone '去除此行的內(nèi)部框線,只余邊框 n = n + 1 Loop Selection.Tables(1).Rows(Val(TextBox1.Text)* 2 + 1).Height = CentimetersToPoints(Val(TextBox4.Text))'設(shè)置末行高為設(shè)置值
Selection.EndKey Unit:=wdRow, Extend:=True Selection.Cells.Borders(wdBorderVertical).LineStyle = wdLineStyleNone Selection.Tables(1).Rows.Alignment = wdAlignRowCenter '表格居中
With Selection.Tables(1).Borders(wdBorderLeft).LineWidth = wdLineWidth150pt.Borders(wdBorderRight).LineWidth = wdLineWidth150pt.Borders(wdBorderTop).LineWidth = wdLineWidth150pt.Borders(wdBorderBottom).LineWidth = wdLineWidth150pt '設(shè)定表格邊框?yàn)榇志€ End With Selection.EndKey Unit:=wdLine Unload Me End Sub
二、使用
與Word的稿紙向?qū)Щ蚋寮埣虞d項(xiàng)相比,此程序做出的稿紙顯然不適于在文檔中直接使用,但在制作作文試卷時(shí)優(yōu)勢明顯。其一,不受紙型限制;其二,因?yàn)槭潜砀瘢阅芨鶕?jù)需要自由地添加、刪除行列,還能在適當(dāng)位置標(biāo)注作文所要求的字?jǐn)?shù)。
應(yīng)用前,應(yīng)先設(shè)定好試卷模板,然后進(jìn)行試驗(yàn),以找出試卷最適的格子大小和行列數(shù),需要制作稿紙時(shí),可直接在“常用”工具欄上單擊“作文稿紙”按鈕,也可以連續(xù)點(diǎn)擊“工具”,“宏”,“宏?”,打開“宏”對(duì)話框,在左側(cè)組合框中選擇名為“作文稿紙”的宏,然后單擊“運(yùn)行”,即可啟動(dòng)宏程序,在隨后出現(xiàn)的“作文稿紙?jiān)O(shè)置”窗口中,根據(jù)需要修改默認(rèn)設(shè)置,最后,單擊“確定”按鈕,程序?qū)⒆詣?dòng)繪制作文稿紙表格,如果稿紙超出一頁(或一欄),選擇稿紙中部的行刪除即可。下面是20×20稿紙。
三、導(dǎo)出導(dǎo)入
在VBA編程窗口中,分別選擇工程資源管理器中的UserForm1窗體和NewMacros模塊,導(dǎo)出UserForm1.frm、UserForm1.frx和NewMacros.bas文件。
需要在其他電腦中使用這個(gè)程序時(shí),把備份拷貝過來,啟動(dòng)VBA編程窗口,通過“文件”、“導(dǎo)入文件”將UserForm1.frm、和NewMacros.bas導(dǎo)入,在Word中就使用了。以上程序在Word 2003中調(diào)試通過。
第三篇:在Word2010文檔中設(shè)置漸變頁面背景顏色
在Word2010文檔中設(shè)置漸變頁面背景顏色
在Word2010文檔窗口中使用單色的頁面背景看起來似乎有些單調(diào),并且很難呈現(xiàn)出讓人眼前一亮的效果。而如果使用漸變顏色作為Word文檔頁面背景,則可以使Word文檔更富有層次感。在Word2010文檔中設(shè)置漸變頁面背景顏色的步驟如下所述:
第1步,打開Word2010文檔窗口,切換到“頁面布局”選項(xiàng)卡。在“頁面背景”分組中單擊“頁面顏色”按鈕,并在打開的頁面顏色面板中選擇“填充效果”命令,如圖2010082003所示。
圖2010082003 選擇“填充效果”命令
第2步,在打開的“填充效果”對(duì)話框中,切換到“漸變”選項(xiàng)卡。在“顏色”區(qū)域選中“雙色”單選框,然后分別選擇“顏色1”和“顏色2”。在“底紋樣式”區(qū)域選擇顏色的漸變方向,包括“水平”、“垂直”、“斜上”、“斜下”、“角部輻射”和“中心輻射”幾種樣式。設(shè)置完畢單擊“確定”按鈕即可,如圖2010082004所示。
圖2010082004 “漸變”選項(xiàng)卡