• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    VB6中對(duì)MSHFlexGrid控件編程模擬實(shí)現(xiàn)滾動(dòng)條與鼠標(biāo)滾輪動(dòng)作

    2010-10-26 01:18:34郝西成
    衛(wèi)生職業(yè)教育 2010年24期
    關(guān)鍵詞:窗體滾輪指針

    郝西成

    (蘭州資源環(huán)境職業(yè)學(xué)院,甘肅 蘭州 730000)

    VB6中對(duì)MSHFlexGrid控件編程模擬實(shí)現(xiàn)滾動(dòng)條與鼠標(biāo)滾輪動(dòng)作

    郝西成

    (蘭州資源環(huán)境職業(yè)學(xué)院,甘肅 蘭州 730000)

    MSHFlexGrid控件;美化效果;模擬鼠標(biāo)動(dòng)作;VB編程

    MSHFlexGrid控件用于對(duì)表格數(shù)據(jù)進(jìn)行顯示和操作,可以將文本或圖片,或者文本和圖片放在MSHFlexGrid的任意單元中。程序員可以在代碼中指定當(dāng)前單元,也可以在運(yùn)行時(shí)使用鼠標(biāo)或者方向鍵對(duì)其進(jìn)行修改。在對(duì)包含字符串和圖片的表格進(jìn)行分類、合并以及格式化時(shí),使用MSHFlexGrid控件具有很大的靈活性。

    然而MSHFlexGrid控件不能響應(yīng)鼠標(biāo)滾輪動(dòng)作(即就是為VB6打上支持鼠標(biāo)滾輪的補(bǔ)丁后),這就給使用者在操作時(shí)造成了不便,與此同時(shí),該控件的滾動(dòng)條顏色也未提供屬性進(jìn)行設(shè)置,這也給使用者在考慮程序界面的美觀與統(tǒng)一時(shí)造成了影響。雖然可以使用標(biāo)準(zhǔn)Windows滾動(dòng)條FlatScrollBar控件加上一些自編代碼代替MSHFlexGrid控件自身的滾動(dòng)條使效果有所改善,亦或在VB“部件”下選擇Microsoft Forms Object Library來使用它提供的可以設(shè)置顏色的滾動(dòng)條加上一些自編代碼來代替MSHFlexGrid控件自身的滾動(dòng)條,但效果仍差強(qiáng)人意。針對(duì)上述問題,在不借助第三方控件的前提下完全可以通過編程來模擬實(shí)現(xiàn)。

    1 建立工程

    在窗體上先放置一個(gè)PictureBox控件(Picture1),再在其中放置1個(gè)MSHFlexGrid和1個(gè)PictureBox控件(Picture2),最后在Picture2中放置4個(gè)Image控件(見圖1,其中Picture2內(nèi)從左到右依次為Image1、Image2、Image3和Image4。為保證顯示效果,在用工具制作這4個(gè)圖像時(shí),應(yīng)讓其水平、寬度、像素保持一致,并注意Image1、Image2和Image3圖像的大小即高度、像素比例保持協(xié)調(diào))。

    圖1 Picture2中放置4個(gè)Image控件示意圖

    2 添加模塊

    輸入以下代碼(截取發(fā)送到窗體的Windows消息,實(shí)現(xiàn)鼠標(biāo)滾輪的事件檢測)。

    3 為窗體輸入以下代碼

    4 效果驗(yàn)證

    運(yùn)行程序后單擊Image3、Image2、Image4或拖動(dòng)Image2,將發(fā)現(xiàn)此時(shí)與滾動(dòng)條操作效果完全一致,不論鼠標(biāo)指針位置在何處,在當(dāng)窗體處于活動(dòng)狀態(tài)時(shí),只要滾動(dòng)鼠標(biāo)滾輪,MSHFlex-Grid中數(shù)據(jù)與Image2都會(huì)同步移動(dòng),看看是否與“千千靜聽”的播放列表窗口操作很相似。

    如果對(duì)MSHFlexGrid控件的選中行配合使用其CellPicture屬性,則可以將圖片放在MSHFlexGrid的對(duì)應(yīng)單元格中,同時(shí),也只需要再增加幾行簡單的代碼,便可以使模擬的滾動(dòng)條在需要的時(shí)候出現(xiàn),而在不需要的時(shí)候就隱藏起來,當(dāng)然,我們還可以為Image1、Image2和Image3再分別制作一個(gè)圖像,并調(diào)用API函數(shù)(GetCursorPos)繼續(xù)編程,來獲取鼠標(biāo)指針在屏幕像素坐標(biāo)中的位置,從而測算出鼠標(biāo)指針是否移入或移出Image1、Image2和Image3對(duì)象,進(jìn)而實(shí)現(xiàn)Image1、Image2和Image3對(duì)象圖像的即時(shí)更換(在VB中,雖然Image控件支持鼠標(biāo)的移入事件,但卻未提供移出事件,盡管在當(dāng)其他對(duì)象發(fā)生鼠標(biāo)的移入事件時(shí),事實(shí)上也就是鼠標(biāo)指針從Image控件上移出,但基于這樣一個(gè)思路的編程實(shí)際效果有相當(dāng)?shù)木窒扌裕?,這樣就可以使我們模擬的滾動(dòng)條顯示效果更加美觀、生動(dòng),當(dāng)然,也別忘記給窗體“化妝”(此時(shí)即與“千千靜聽”的播放列表窗口操作效果完全一致了。見圖2。這是自編的影音播放程序中在使用MSHFlexGrid控件顯示播放列表時(shí),代碼中常數(shù)p2取值6并且在鼠標(biāo)指針指向Image2對(duì)象時(shí)的顯示效果情況)。

    圖2 自編影音播放程序的顯示效果

    上述代碼中,MSHFlexGrid控件的ScrollBars屬性值被設(shè)置為FlexScrollBarNone,此時(shí),改變其TopRow屬性值就不能實(shí)現(xiàn)數(shù)據(jù)行的滾動(dòng),雖然可以將MSHFlexGrid控件的ScrollBars屬性值設(shè)置為FlexScrollBarBoth或FlexScrollBarVertical,并利用PictureBox控件的容器特性將MSHFlexGrid控件的Width屬性設(shè)置超過PictureBox控件的Width屬性值后,使MSHFlexGrid控件自身的滾動(dòng)條不被看到,但由于Windows外觀設(shè)置的不同,MSHFlexGrid控件的滾動(dòng)條顯示寬度也隨之變化。當(dāng)然,我們可以將MSHFlexGrid控件的Width屬性值設(shè)置的足夠大,并且測算出其存放數(shù)據(jù)的最右一列的寬度,使其達(dá)到模擬滾動(dòng)條所用的PictureBox控件(Picture2對(duì)象)的左側(cè)邊界來解決,而如果要求精確設(shè)置MSHFlexGrid控件的Width屬性,就需要額外編程檢測Windows的版本及外觀設(shè)置,為簡化代碼,并多一種解決問題的思路,同時(shí)又使代碼更具有通用性(其實(shí)利用上述代碼的架構(gòu)也可以實(shí)現(xiàn)Picture1對(duì)象內(nèi)其他內(nèi)容的滾動(dòng)顯示),筆者沒有使用MSHFlexGrid控件的TopRow屬性值去實(shí)現(xiàn)數(shù)據(jù)行滾動(dòng)。在程序中,由于對(duì)MSHFlexGrid控件設(shè)置了RowHeight(0)= 0,并且VB系統(tǒng)中又默認(rèn)MSHFlexGrid控件的Row屬性是從0開始計(jì)數(shù)的,故在尚未增加檢測模擬滾動(dòng)條是否根據(jù)MSHFlexGrid控件中數(shù)據(jù)行數(shù)是顯示或隱藏的代碼之前,應(yīng)保證常數(shù)p3的值比p2至少大2。

    G420

    A

    1671-1246(2010)24-0155-04

    猜你喜歡
    窗體滾輪指針
    滾輪滑雪運(yùn)動(dòng)多元價(jià)值與推廣策略研究
    偷指針的人
    試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
    檔案天地(2019年5期)2019-06-12 05:12:02
    為什么表的指針都按照順時(shí)針方向轉(zhuǎn)動(dòng)
    1+1=150
    滾輪移動(dòng)式鑄鐵機(jī)改滾輪固定式鑄鐵機(jī)設(shè)計(jì)改造
    基于改進(jìn)Hough變換和BP網(wǎng)絡(luò)的指針儀表識(shí)別
    電測與儀表(2015年5期)2015-04-09 11:30:42
    光電傳感器的新功能拓展——滾輪式光電測距原理演示儀
    ARM Cortex—MO/MO+單片機(jī)的指針變量替換方法
    基于LayeredWindow的異形窗體局部刷新
    中文信息(2014年2期)2014-03-06 23:49:14
    都安| 武邑县| 乡城县| 克什克腾旗| 盱眙县| 德化县| 泗阳县| 牡丹江市| 定日县| 县级市| 琼海市| 固镇县| 曲靖市| 金溪县| 新绛县| 历史| 永胜县| 广元市| 吕梁市| 伊通| 江西省| 浦江县| 康平县| 江源县| 永济市| 乌兰察布市| 九龙城区| 芜湖市| 乳源| 通河县| 青铜峡市| 营山县| 淮安市| 来安县| 枞阳县| 秀山| 崇义县| 旬邑县| 广东省| 潮安县| 米易县|