• WinAPI: SetBkMode 设置背景模式


    本例效果图:



    代码文件:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;
    
    type
      TForm1 = class(TForm)
        RadioGroup1: TRadioGroup;
        procedure FormPaint(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure RadioGroup1Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      RadioGroup1.Items.CommaText := 'TRANSPARENT,OPAQUE';
      RadioGroup1.ItemIndex := 0;
      RadioGroup1.Columns := RadioGroup1.Items.Count;
    end;
    
    procedure TForm1.FormPaint(Sender: TObject);
    const
      str = 'Delphi 2007';
    var
      x,y: Integer;
    begin
      Canvas.Font.Size := 36;
      Canvas.Font.Style := [fsBold];
      x := (ClientWidth - Canvas.TextWidth(str)) div 2;
      y := (ClientHeight - Canvas.TextHeight(str)) div 4;
    
      Canvas.Pen.Color := clRed;
      Canvas.Brush.Color := clWhite;
    
      case RadioGroup1.ItemIndex of
        0: SetBkMode(Canvas.Handle, TRANSPARENT); {透明模式}
        1: SetBkMode(Canvas.Handle, OPAQUE);      {非透明模式}
      end;
    
      {也可以用下面一句话代替上面的 case 语句}
      //SetBkMode(Canvas.Handle, RadioGroup1.ItemIndex + 1);
    
      BeginPath(Canvas.Handle);
      Canvas.TextOut(x, y, str);
      EndPath(Canvas.Handle);
    
      StrokeAndFillPath(Canvas.Handle);
    end;
    
    procedure TForm1.RadioGroup1Click(Sender: TObject);
    begin
      Repaint;
    end;
    
    end.
    
    窗体文件:
    object Form1: TForm1
      Left = 329
      Top = 269
      Caption = 'Form1'
      ClientHeight = 206
      ClientWidth = 339
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      OldCreateOrder = False
      Position = poDesigned
      OnCreate = FormCreate
      OnPaint = FormPaint
      PixelsPerInch = 96
      TextHeight = 13
      object RadioGroup1: TRadioGroup
        Left = 40
        Top = 149
        Width = 257
        Height = 41
        Caption = 'RadioGroup1'
        TabOrder = 0
        OnClick = RadioGroup1Click
      end
    end
    
  • 相关阅读:
    React元素渲染
    初识JSX
    微信小程序复制文本到剪切板
    微信小程序报错request:fail url not in domain list
    小程序,通过自定义编译条件,模拟推荐人功能
    积分抵扣逻辑
    微信小程序 switch 样式
    tomcat 配置开启 APR 模式
    tomcat8 传输json 报错 Invalid character found in the request target. The valid characters are defined in RFC 3986
    c++数组初始化误区
  • 原文地址:https://www.cnblogs.com/del/p/1206612.html
Copyright © 2020-2023  润新知