亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C++Builder中"異形"按鈕的實現

2019-11-17 05:20:25
字體:
來源:轉載
供稿:網友

  “異形”按鈕非常有趣,就是按鈕的外形不是標準的長方形或正方形,而有一絲“叛逆”——“異形”嘛,是不是?怎樣才能實現“異形”按鈕呢?由于Window 95增加了對窗口區域概念的支持,使得窗口區域就是所定義的窗口看上去的外形,窗口區域作為窗口的實際邊界區域,這樣窗口區域不僅定義了窗口的可畫區域,而且定義了窗口下隱含區域和響應鼠標擊鍵事件的響應窗口區域。
   按鈕的各種外形是在運行時設置的而不是在設計時設置。設計時按鈕的外形仍然是長方形或正方形。
   按鈕外形的設計分成兩個步驟:
   第一步創建按鈕的外形,即定義窗口區域。使用API的區域創建函數就可達到目的。區域創建函數很多,主要有CreateEllipticRgn 、CreatePolygonRgn、 CreateRectRgn、 CreateRoundRectRgn,用于創建不同類型的區域顯示。假如需要一個復雜區域外形,那么可以分別使用不同的區域函數創建不同的區域,然后調用CombineRgn API函數把它們組合起來。所以說,不僅可以創建出圓形、三角形的按鈕,而且還可以創建出其它各種外形的按鈕。
   第二步將區域顯示應用到窗口上。一旦使用區域函數創建了一個新的區域顯示,就可以使用SetWindowsRgn函數將這個區域應用到窗口上。
   下面給出圓形、三角形按鈕實現的具體代碼。為了直觀顯示效果,將窗體的背景色設置為了黑色(Color設置為clBTnText),并將兩個按鈕的Cursor設置crCross。在窗體放置兩個Button按鈕,分別定義為RButton、TButton。實現窗口區域的最佳時機是在窗體首次創建時,所以將處理程序放在OnCreate事件中。
   void __fastcall TForm1::FormCreate(TObject *Sender)
   {
   //創建園形按鈕
   HRGN hRgnR = CreateEllipticRgn(0,0,RButton→
   Width,RButton→Height);
   SetWindowRgn(RButton→Handle,hRgnR,TRUE);
   //創建三角形按鈕
   TrPoint[0].x=TButton→Width/2;
   TrPoint[0].y=0;
   TrPoint[1].x=0;
   TrPoint[1].y=TButton→Height;
   TrPoint[2].x=TButton→Width;
   TrPoint[2].y=TButton→Height;
   HRGN hRgnT = CreatePolygonRgn(TrPoint,3,ALTERNATE);
   SetWindowRgn(TButton→Handle,hRgnT,TRUE);
   }
   其中TrPoint在Unit.h頭文件中定義如下:
   PRivate: // User declarations
   POINT TrPoint[3];
   上面的代碼在按鈕的邊界內分別創建了一個園形區域和一個三角形區域,然后作為新的窗口區域把它賦給各自的按鈕。在創建園形按鈕時使用了橢圓形區域創建函數,要使按鈕為園形在設計時該按鈕應設計為正方形。另外區域是以按鈕坐標的形式定義的,而不是用屏幕坐標。(0,0)點是按鈕的最左上角,而(寬,高)點是按鈕的最右下角。
   應該注重的是,一旦將區域句柄賦給按鈕,就不能再對區域句柄作任何操作。假如將區域句柄賦給按鈕后,修改或刪除這個句柄將導致程序崩潰,所以……千萬不要這樣做,否則,你的程序雖然花哨了一些,但卻是“拾了芝麻丟了西瓜”而因小失大!說到這里,我想,程序設計首先要注重“穩定性”,至于其它的都次要。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区日韩欧美| 色先锋资源久久综合5566| 91视频免费网站| 日本一区二区三区在线播放| 国产精品你懂得| 精品国内自产拍在线观看| 97视频在线观看视频免费视频| 久久成人人人人精品欧| 亚洲夜晚福利在线观看| 国产精品日韩在线一区| 欧美wwwxxxx| 在线观看国产精品日韩av| 81精品国产乱码久久久久久| 亚洲图片欧美午夜| 蜜臀久久99精品久久久无需会员| 九九精品视频在线观看| 欧美大片在线看免费观看| 久久久免费在线观看| 黑人精品xxx一区一二区| 狠狠干狠狠久久| 在线看国产精品| 国内揄拍国内精品少妇国语| www.午夜精品| 最好看的2019的中文字幕视频| 亚洲人成网在线播放| 97视频免费观看| 精品国产一区二区三区在线观看| 亚洲欧美日韩第一区| 欧美日韩在线视频一区| 日韩av免费在线看| 欧美亚洲成人精品| 国产在线日韩在线| 91精品久久久久久久久青青| 亚洲欧美精品伊人久久| 91在线无精精品一区二区| 国内精品久久久久久影视8| 欧美性生活大片免费观看网址| 国产aaa精品| www.xxxx精品| 日韩av在线导航| 欧美精品久久久久久久久| 亚洲人线精品午夜| 国产欧美精品日韩精品| 国产一区二区三区视频在线观看| 韩国美女主播一区| 欧美日韩一二三四五区| 欧美性在线观看| 亚洲欧洲在线视频| 亚洲视频欧洲视频| 日韩av网址在线| 日韩精品高清在线| 26uuu国产精品视频| 91精品国产综合久久男男| 久久久女女女女999久久| 久久综合电影一区| 日日狠狠久久偷偷四色综合免费| 北条麻妃在线一区二区| 亚洲一区二区三区视频| 欧美在线视频观看| 亚洲福利小视频| 91人人爽人人爽人人精88v| 亚洲一区二区三区在线免费观看| 国产精品日韩欧美综合| 国语自产精品视频在线看一大j8| 91九色综合久久| 国产精品高潮在线| 国内精品伊人久久| 国产精品xxxxx| 亚洲精品大尺度| 日韩成人在线电影网| 日韩经典中文字幕| 亚洲人成电影网站色…| 国产精品视频大全| 亚洲国产欧美久久| 国产成人av在线播放| 久久99国产精品久久久久久久久| 国语自产精品视频在免费| 中文字幕在线看视频国产欧美在线看完整| 日韩精品中文字幕视频在线| 日韩精品丝袜在线| 亚洲高清不卡av| 欧美激情精品久久久久久免费印度| 精品久久久久久久久久久久久| 欧美激情综合色综合啪啪五月| 国产精品久久久久aaaa九色| 国产亚洲aⅴaaaaaa毛片| 欧美日韩国产999| 久久精品国产亚洲| 久久久人成影片一区二区三区| 亚洲色图色老头| 亚洲精品久久在线| 亚洲资源在线看| 国产精品成av人在线视午夜片| 日韩av不卡在线| 亚洲福利视频免费观看| 欧美精品在线观看| 欧美一级在线播放| 欧美疯狂性受xxxxx另类| 欧美激情国产高清| 日韩视频精品在线| 久久久亚洲网站| 国产噜噜噜噜久久久久久久久| 国产va免费精品高清在线| 久久久国产视频| 精品欧美aⅴ在线网站| 91a在线视频| 欧美性做爰毛片| 日韩激情片免费| 色噜噜亚洲精品中文字幕| 国产高清在线不卡| 亚洲性av网站| 视频在线一区二区| 欧美日韩亚洲激情| 北条麻妃一区二区三区中文字幕| 国产欧美精品日韩精品| 亚洲天堂视频在线观看| 欧洲成人免费视频| 国产精品国产三级国产aⅴ9色| 欧美巨大黑人极品精男| 久久久久久久97| 久久影视电视剧凤归四时歌| 久久久久国产精品免费网站| 69视频在线播放| 最近2019中文字幕一页二页| 欧美精品中文字幕一区| 欧美日韩不卡合集视频| 国产精品自产拍在线观| 日本一欧美一欧美一亚洲视频| 久久综合久久八八| 国语自产精品视频在免费| 欧美亚洲国产日韩2020| 久热精品视频在线免费观看| 亚洲欧美另类国产| 色av中文字幕一区| 色系列之999| 亚洲国产精品yw在线观看| 久久久亚洲成人| 亚洲人午夜精品| 国产精品免费一区豆花| 亚洲人免费视频| 欧美日韩一区二区三区| 日韩电影中文字幕在线观看| 26uuu日韩精品一区二区| 日韩精品视频在线免费观看| 国产偷国产偷亚洲清高网站| 精品伊人久久97| 九九久久国产精品| 热久久这里只有| 91中文字幕在线观看| 91网站免费看| 成人午夜小视频| xxxxx91麻豆| 91av中文字幕| 久久91精品国产| 国产激情综合五月久久| 国产日韩欧美自拍| 日本一区二区三区在线播放| 91视频国产精品| 88国产精品欧美一区二区三区| 中文字幕一精品亚洲无线一区| 亚洲精品永久免费| 国产精品久久一| 亚洲综合精品一区二区| 日韩精品免费一线在线观看|