文档章节

再学 GDI+[80]: 区域(9) - GetHRGN - 转为 GDI 的区域句柄

涂孟超
 涂孟超
发布于 2014/09/26 15:33
字数 150
阅读 9
收藏 0
本例效果图:



代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses GDIPOBJ, GDIPAPI;

procedure TForm1.FormPaint(Sender: TObject);
var
  g: TGPGraphics;
  b: TGPBrush;
  rgn: TGPRegion;
  RegionHandle: HRGN;
begin
  g := TGPGraphics.Create(Canvas.Handle);
  b := TGPHatchBrush.Create(HatchStyleDiagonalCross, aclSilver, aclLemonChiffon);
  rgn := TGPRegion.Create(MakeRect(40.0, 40, ClientWidth-80, ClientHeight-80));
  g.FillRegion(b, rgn);

  RegionHandle := rgn.GetHRGN(g);

  Canvas.Brush.Color := clRed;
  FrameRgn(Canvas.Handle, RegionHandle, Canvas.Brush.Handle, 2, 2);

  DeleteObject(RegionHandle);
  rgn.Free;
  b.Free;
  g.Free;
end;

end.

 
 
 
 
 

 

 

  
窗体文件:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 162
  ClientWidth = 197
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  Position = poDesktopCenter
  OnPaint = FormPaint
  PixelsPerInch = 96
  TextHeight = 13
end

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/06/30/1232739.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
GetDC、GetDCEx、GetWindowDC

GetDC 该函数为指定窗口的客户区域取回显示DC的句柄。随后的GDI函数中可以使用显示DC在窗口客户区域绘图。 原型: 参数: hWnd:将要取回DC的窗口句柄。如果该值为NULL,GetDC取回整个屏幕的...

ryany
2010/12/02
0
0
如何对mfc窗体背景图片的设置

打开vc+的mfc工程,先载入一张图片,ID为IDB_BITMAP2 TestDlg.h中: CBrush m_brBk;//在public中定义 TestDlg.cpp中: 在初始化函数OnInitDialog()中加入: BOOL CTestDlg::OnInitDialog() { C...

crossmix
2015/10/07
1K
0
MFC中的DC、CDC、HDC、句柄、设备上下文的不同意思,适合初学者参考

请问mfc中的dc、cdc、hdc、句柄、设备上下文究竟是什么意思? 希望能解答详细一点点 谢谢了 推荐答案 都是什么回答啊 ... 楼主你没有了解mfc的运行机制就去看他写他所以你先要了解他的机制 ...

小青_1989
2014/05/30
106
0
详解DC、CDC、HDC、句柄、设备上下文

MFC中的DC、CDC、HDC、句柄、设备上下文究竟是什么意思? 在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成员函数.也就是说MFC封装了Windows API 你...

IMGTN
2012/06/04
0
0
拖放 DataGrid 列--来自MSDN

发布日期: 09/19/2004 | 更新日期: 09/19/2004 Chris Sano Microsoft Corporation 摘要:了解如何利用基本的 GDI 功能,从而通过 DataGrid 控件获得可视化效果。通过跨越托管边界进行调用,...

晨曦之光
2012/03/09
174
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java IO类库之PrintStreamWriter

* A <code>PrintStream</code> adds functionality to another output stream, * namely the ability to print representations of various data values * conveniently. Two other fea......

老韭菜
今天
0
0
qduoj~前端~二次开发~笔记

青岛大学qdu的onlinejudge是js的写的前端,框架是vue.js,在nodejs上部署运行,其实整体运行还是建立在docker的容器虚拟环境里,这里暂时不需要docker。安装环境是Ubuntu14-64bit 1.安装一大...

虚拟世界的懒猫
今天
6
0
ConcurrentHashMap源码解读

部分内容转自:http://jiabinyuan.xyz/#/app/archive/detail/25 内部结构 内部采用了segment结构,每一个segment相当于一个hashtable。看下面的结构图: 从图的结构我们可以了解到,Concurr...

edwardGe
今天
1
0
Ubuntu终端Tab键自动补全

打开 /etc/bash.bashrc,找到下列代码,取消注释。 #enable bash completion in interactive shells#if ! shopt -oq posix; then# if [-f /usr/share/bash-completion/bash_compl......

大熊猫
今天
0
0
polipo socks5代理转http代理

天朝的网络,哎~ 装个 yarn 都时而会卡 假设在SSlocal 已经装好运行的前提下,来安装设置 polipo sudo apt-get install polipo sudo vim /etc/polipo/config 追加下列配置内容,并保存 socksP...

纯洁徐
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部