首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ Builder 實作圓形與三角形按鈕

     編輯:關於C++

利用視窗區域建立異形按鈕

Windows 95 導入視窗區域概念,按鈕形狀可在執行期透過 API 設定。設計時按鈕仍為矩形,執行時套用區域即呈現異形。

兩步驟實作

  1. 建立區域:使用 CreateEllipticRgn、CreatePolygonRgn 等函數建立形狀區域。
  2. 套用區域:呼叫 SetWindowRgn 將區域指派給按鈕視窗控制代碼。

完整程式碼 (FormCreate)

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);
}

標頭檔宣告

private:
    POINT TrPoint[3]; // 三角形三個頂點

重要注意事項

  • 區域座標以按鈕客戶區左上角為原點 (0,0)。
  • 圓形按鈕設計時必須為正方形,否則會呈橢圓。
  • 一旦將區域控制代碼指派給按鈕,切勿再操作或刪除該控制代碼,否則會導致程式崩潰。
  • 滑鼠游標僅在區域內顯示為設定的 crCross。
  • 可搭配 TBitBtn 或 TSpeedButton 貼上點陣圖美化外觀。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved