国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > Delphi > 正文

用API函數在DELPHI中實現“非典型”窗體

2019-11-18 18:34:42
字體:
來源:轉載
供稿:網友
 用API函數在DELPHI中實現“非典型”窗體
    現在的一些共享軟件特別是一些多媒體播放器軟件為了吸引用戶,很注重程序界面的設計。實際上,我們使用API函數也可以實現那些好看又另類的效果。
    1.異形窗體
    窗體只能是方的嗎?不是,還可以有其他形狀。這要用到兩個Win32 API函數。首先用CreateRoundRectRgn()函數在窗體內界定一個橢圓形區域。這里所指的區域(region)是一個特殊的API對象,我們可以在區域內部進行填充和剪裁等操作,從而定義窗體的外部特征。然后調用SetWindowRgn()函數繪制,更進一步還可以再用CombineRgn()函數來合并多個區域,例如在Delphi的單元文件中加入以下代碼:
    PRocedure TForm1.FormCreate(Sender: TObject);
    var
      FRegion1:THandle;
      FRegion2:THandle;
    begin
      FRegion1:=CreateRoundRectRgn(20,20,200,200,300,300);//界定一個橢圓區域
      FRegion2:=CreateRectRgn(170,170,400,400);//界定一個矩形區域
      CombineRgn(FRegion1,FRegion1,FRegion2,RGN_OR);//將兩個區域連接起來
      SetwindowRgn(handle,FRegion1,True);//對連接后的區域進行繪制
    end;
    程序段中的CreateRoundRectRgn()函數用來創建一個圓角矩形區域,它的原型為:
    HRGN CreateRoundRectRgn(
    int nLeftRect, // 左上角的X坐標
    int nTopRect, // 左上角的Y坐標
    int nRightRect, // 右下角的X坐標
    int nBottomRect, // 右下角的Y坐標
    int nWidthEllipse, //圓角所在橢圓的寬
    int nHeightEllipse  // 圓角所在橢圓的高
    );
    其他圖形如多邊形、橢圓形等都有對應的API函數,它們的原型如下:
    HRGN CreateEllipticRgn(int nLeftRect,int nTopRect,int nRightRect,int nBottomRect)
    HRGN CreateEllipticRgnIndirect( CONST RECT *lprc)
    HRGN CreatePolygonRgn(CONST POINT *lPPT,int cPoints, int fnPolyFillMode)
    HRGN CreatepolypolygonRgn(CONST POINT *lppt,CONST INT *lpPolyCounts,int nCount,int fnPolyFillMode)
    HRGN CreateRectRgn(int nLeftRect,int nTopRect,int nRightRect,int nBottomRect)
    HRGN CreateRectRgnIndirect(CONST RECT *lprc)
    以上函數的參數很好理解,用來說明圖形內置矩形的坐標或指向該矩形。重點來看一下另外兩個函數:
    函數原型:SetWindowRgn(
              HWND hWnd,         //當前窗體的句柄
              HRGN hRgn,          //當前區域的句柄
              BOOL bRedraw,      //重繪標志
              )
    函數功能:該函數把已創建的區域的句柄作為參數傳遞給當前窗體的句柄,并在該區域范圍內繪制窗體;
    函數原型:CombineRgn(
              HRGN hrgnDest,  // 連接目的區域的句柄
              HRGN hrgnSrc1,  // 第一個連接源區域的句柄
              HRGN hrgnSrc2,  // 第二個連接源區域的句柄
              int fnCombineMode  // 連接模式
              )
    函數功能:該函數將兩個區域合并為一個新的區域,其中連接模式可取以下值:
    參數值          作用
    RGN_AND         由區域1與區域2的共有部分即交集創建新的區域
    RGN_COPY        創建區域1的副本作為新的區域
    RGN_DIFF        連接屬于區域1但不屬于區域2的部分為新的區域
    RGN_OR          連接區域1和區域2的所有部分即并集
    RGN_XOR。     連接區域1和區域2的所有部分即并去掉共有部分
    2.空心窗體
    這種窗體的特點是好端端的一個窗體,中間被挖了一部分。例如在Delphi的單元文件中加入以下代碼:
    procedure TForm1.FormCreate(Sender: TObject);
    var
      FRegion3:THandle;
    begin
      Canvas.Font.Name:='華文行楷';//設置字體 
      Canvas.Font.Size:=100;//設置字號
      BeginPath(Canvas.Handle); //得到vanvas上繪制的輪廓
      TextOut(form1.Canvas.Handle,0,20,'程序春秋',8);//將“程序春秋”四個字所占區域摳掉
      EndPath(Canvas.Handle);
      FRegion3:=PathToRegion(Canvas.Handle);//將以上區域賦給窗體
      SetwindowRgn(Handle,FRegion3,True);//開始繪制
    end;
    這里主要用到了三個API函數:
    函數原型:BOOL BeginPath(HDC hdc  //設備環境的句柄)
    函數功能:開始接收當前設備環境的路徑軌跡;
    函數原型:BOOL EndPath(HDC hdc  //設備環境的句柄) 
    函數功能:停止接收并將已接收的路徑軌跡賦給當前設備環境的句柄
    函數原型  BOOL TextOut(
              HDC hdc, // handle of device context
              int nXStart, // 起始位置的X坐標 
              int nYStart, // 起始位置的Y坐標
              LPCTSTR lpString, // 字符串地址
              int cbString  //字符串所包含字符數(注意一個漢字占兩個字符)
              )
    函數功能:在指定位置繪制給定字符串。
    小結:學會熟練使用API進行編程,是一項很重要的技能,有時可以達到意想不到的效果。以上幾種技巧旨在拋磚引玉,希望大家充分運用各種技巧,發揮自己想像,設計出更炫的窗體,美化自己的程序

上一篇:Delphi組件與屬性編輯器

下一篇:Delphi程序設計之--慣用法

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
九色视频网站| 国产精品伦一区二区三区视频| 丁香婷婷在线| 国产麻豆精品高清在线播放 | 国产精品伦理一区二区三区| 最新黄网在线观看| 国产高清自拍视频在线观看 | 在线中文字幕观看| 另类专区欧美| 国产精品久久麻豆| 国产成人精品实拍在线| 一级黄色av| 国产剧情在线一区| 精品全国在线一区二区| 免费午夜一级| 国产精品久久麻豆| 免费在线看v| 在线视频观看亚洲| 国产视频中文字幕在线观看| 四虎免费播放| 在线天堂中文www视软件| 久草.com| 日本久久网站| 99reav| 国产精品久久久久久久牛牛| 亚洲欧美精品日韩欧美| 中文字幕在线影视资源| eeuss影院www在线观看| 国产黄色免费网| 国产麻豆一区二区三区精品| 波多野结衣中文字幕久久| 69免费视频| 国产网站免费观看| 国产中文字幕网| 久热久精久品这里在线观看| 伊人色综合网| 国产黄色免费在线观看| 国产一二三区在线视频| 中文字幕乱在线伦视频乱在线伦视频| wwwww在线观看免费视频| 国产成人亚洲欧美电影| 国产三级在线看| 国产天堂在线观看| 国产香蕉视频在线看| 午夜免费福利在线观看| 综合激情亚洲| 精品剧情v国产在线观看| 97操碰视频| 亚洲第一页在线播放| 日本黄在线观看| 久久五月精品| 国产区在线观看| 在线观看免费黄色| 久久精品国产麻豆| 中文字幕中文字幕在线中高清免费版| 黄色av网站在线| 国产精彩视频在线观看免费蜜芽| 国产叼嘿网站免费观看不用充会员| 国产精品国精产品一二| 亚洲欧美综合乱码精品成人网 | 国产三级视频在线看| 国产精品xxx电影| 精精国产xxxx视频在线中文版 | 久久综合精品视频| 国产探花在线观看| 在线黄色av| 国产女王在线**视频| 2021av在线| 亚洲精品自拍区在线观看| 免费高清av| 国产欧美黑人| 激情视频国产| 在线观看中文| 国产精品毛片一区二区三区四区 | 国产人成精品| 香蕉视频在线观看网站| 最近中文av字幕在线中文| 精品国产高清a毛片无毒不卡| www.av在线播放| 国产三区四区在线观看| 超碰国产在线| 亚洲视频精品在线观看| 91超碰在线免费| 亚洲天堂电影在线观看| 国产一级免费黄色片| www在线视频观看| 在线视频观看国产| 99视频免费| 美女av在线播放| 在线久久视频| 中文av在线播放| 国产精品蜜臀| 国产区视频在线观看| 天天操夜夜摸| 成人亚洲一区二区三区| 亚洲精品自拍区在线观看| 国产精品777一区二区| 中文字幕一区免费| 国产一二三区在线| 国产精品白浆流出视频| 国产激情自拍| av网址在线免费观看| 国产精品777一区二区| 国产日韩欧美精品一区二区三区 | 国产真实伦在线观看| www久久日com| 免费电影网站在线视频观看福利| eeuss影院在线观看| 欧洲有码在线视频| 国产中文在线| 国产免费人人看| 中文字幕一区二区三区免费视频 | 国产在线观看a视频| 国产乱码在线| 国产三级视频在线看| 国产精品xxx电影| 在线视频中文字幕| 爱福利在线视频| 国产理论片免费观看| 2020国产在线视频| 日本一二三区视频免费高清| 青青青青在线| 国产私拍精品| 日本一二区视频| 九色视频网站| 国产丝袜精品丝袜| 亚洲成人电视网| 久久久久久91精品色婷婷| 国产精品视频h| 日本亚洲精品| 国产在线高清| 性网站在线看| 国产精品免费视频二三区| 亚洲综合激情六月婷婷在线观看 | eeuss影院www在线观看| 超碰免费在线| 精品一区二区在线欧美| 开心婷婷激情| 在线视频中文字幕| 国产一区精品| 美女免费视频黄| av三级在线观看| 中文在线视频| 国产黄色小视频| 国产性一级片| 最新av中文字幕| 国产免费av高清在线| free性亚洲| 日本成人免费网站| 一本久久精品| 国产精品美女视频免费观看软件 | 丁香六月婷婷| 九九视频在线播放| 国产精品乱码一区二区三区视频| 免费在线黄色av| 国产在线www| 日本亚洲精品| 91涩漫在线观看c| 午夜免费视频在线国产| 欧美国产中文| 不卡av免费观看| 中文字幕av在线播放| 国产乱精品一区二区三区| 亚洲精品白浆| 四虎a级欧美在线观看| 精品日韩av| av黄色在线观看| 亚洲免费国产| www.狠狠操.com| 欧洲一区av| 九九99精品| 国产精品自拍在线观看| 午夜国产福利在线| 国产精品视频一区二区三区麻豆| 午夜视频在线观看网站午夜视频在线| 久热国产在线| 国产亚洲精品拍拍拍拍拍| 国产美女免费观看| 国产亚洲精品拍拍拍拍拍| 91资源在线观看| av网站在线播放| 美女免费视频黄| 中文字幕在线看精品乱码| 中文字幕亚洲免费| 在线国产91| 玖玖在线视频| 尤物网址在线观看| 99久热re在线精彩视频| 欧美成人久久电影香蕉| 国产精品午夜久久久久久| 国产精品视频流白浆免费视频| 在线午夜影院| av在线你懂的| 国产美女在线播放| 在线色视频观看| 尤物视频在线观看| 亚洲天堂视频在线观看免费| 国产在线观看网站| 精品女厕厕露p撒尿| 天堂资源最新在线|