• 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
    
  • 相关阅读:
    基于VLC的视频播放器
    IOS开发之新浪微博OAuth2
    Android之官方导航栏ActionBar
    IOS中键盘隐藏几种方式
    在Android中使用Android Ksoap2调用WebService
    Android之属性动画(二)
    IOS 内存管理
    利用scp 远程上传下载文件/文件夹和ssh远程执行命令
    Centos 检查磁盘读写性能
    JPA, JNDI, OSGi
  • 原文地址:https://www.cnblogs.com/del/p/1206612.html
Copyright © 2020-2023  润新知