999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VB6中對MSHFlexGrid控件編程模擬實現滾動條與鼠標滾輪動作

2010-10-26 01:18:34郝西成
衛生職業教育 2010年24期
關鍵詞:設置效果

郝西成

(蘭州資源環境職業學院,甘肅 蘭州 730000)

VB6中對MSHFlexGrid控件編程模擬實現滾動條與鼠標滾輪動作

郝西成

(蘭州資源環境職業學院,甘肅 蘭州 730000)

MSHFlexGrid控件;美化效果;模擬鼠標動作;VB編程

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

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

1 建立工程

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

圖1 Picture2中放置4個Image控件示意圖

2 添加模塊

輸入以下代碼(截取發送到窗體的Windows消息,實現鼠標滾輪的事件檢測)。

3 為窗體輸入以下代碼

4 效果驗證

運行程序后單擊Image3、Image2、Image4或拖動Image2,將發現此時與滾動條操作效果完全一致,不論鼠標指針位置在何處,在當窗體處于活動狀態時,只要滾動鼠標滾輪,MSHFlex-Grid中數據與Image2都會同步移動,看看是否與“千千靜聽”的播放列表窗口操作很相似。

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

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

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

G420

A

1671-1246(2010)24-0155-04

猜你喜歡
設置效果
按摩效果確有理論依據
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
7招教你手動設置參數
迅速制造慢門虛化效果
抓住“瞬間性”效果
中華詩詞(2018年11期)2018-03-26 06:41:34
模擬百種唇妝效果
Coco薇(2016年8期)2016-10-09 02:11:50
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
3D—DSA與3D—CTA成像在顱內動脈瘤早期診斷中的應用效果比較
艦船人員編制的設置與控制
主站蜘蛛池模板: 国产玖玖视频| 国产亚洲精品自在久久不卡 | 久久精品娱乐亚洲领先| 中文字幕久久亚洲一区| 国产微拍一区二区三区四区| 亚洲性日韩精品一区二区| 奇米精品一区二区三区在线观看| 97久久超碰极品视觉盛宴| 国产在线一区视频| 日韩欧美国产区| 强乱中文字幕在线播放不卡| 亚洲视频免| 麻豆国产在线观看一区二区| 国产精品三级av及在线观看| 欧美色亚洲| 丁香五月婷婷激情基地| 亚洲精品777| 丁香六月激情综合| 青青草综合网| 一本色道久久88综合日韩精品| 欧美在线网| 国产美女精品一区二区| 亚洲精品无码日韩国产不卡| 99热这里只有免费国产精品| 黄色一级视频欧美| 一区二区三区成人| 亚洲综合婷婷激情| 视频在线观看一区二区| 91口爆吞精国产对白第三集| 亚洲综合国产一区二区三区| 亚洲综合婷婷激情| 国产一区在线视频观看| 国产综合网站| 国产人碰人摸人爱免费视频| 日韩av手机在线| 99久久精品免费观看国产| 亚洲无线观看| 国产18在线播放| 无码不卡的中文字幕视频| 亚洲黄色网站视频| 亚洲精品国产首次亮相| 18禁黄无遮挡网站| 欧美成人精品一区二区| 美女亚洲一区| 国产91色| 萌白酱国产一区二区| 99九九成人免费视频精品| 欧美一区二区人人喊爽| 亚洲午夜福利精品无码不卡| 亚洲欧洲日韩久久狠狠爱 | 欧美精品亚洲精品日韩专区| 国产极品美女在线播放| 深爱婷婷激情网| 波多野结衣一二三| 日韩精品高清自在线| 亚洲青涩在线| 超清无码一区二区三区| 91亚洲国产视频| 欧美福利在线观看| 色妞永久免费视频| 久草网视频在线| AV无码无在线观看免费| 久久久精品久久久久三级| 伊在人亞洲香蕉精品區| 99热最新在线| 激情无码字幕综合| 日本三级精品| 99久久精品免费看国产电影| 欧美日韩中文国产| 久久国产乱子伦视频无卡顿| 国产精品美女在线| 999国内精品视频免费| 欧美精品啪啪| 精品国产自| 在线观看国产精品日本不卡网| 色欲不卡无码一区二区| 成年A级毛片| 日本欧美一二三区色视频| 亚洲精品在线影院| 国产91丝袜在线播放动漫 | 自拍偷拍欧美| 亚洲Va中文字幕久久一区 |