CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

如何创建一个特殊圆矩形区域?(顶端两个角为圆弧形,底端两个角为90度角)

楼主Terry_05(Terry)2005-06-01 03:14:10 在 VB / 基础类 提问

其实效果就像XP的窗口一样!  
  因为用CreateRectRgn只能创建一个四面都是圆弧形的圆矩形区域,并不能创建一个我所需的形状!  
   
  还请高手赐教! 问题点数:20、回复次数:3Top

1 楼Terry_05(Terry)回复于 2005-06-01 19:06:27 得分 0

自己顶起来!Top

2 楼Terry_05(Terry)回复于 2005-06-02 22:33:19 得分 0

期待解决Top

3 楼pasl(阿龙1)回复于 2005-06-02 23:53:27 得分 20

Option   Explicit  
   
   
  Private   Declare   Function   CreateRoundRectRgn   Lib   "gdi32"   (ByVal   X1   As   Long,   ByVal   Y1   As   Long,   ByVal   X2   As   Long,   ByVal   Y2   As   Long,   ByVal   X3   As   Long,   ByVal   Y3   As   Long)   As   Long  
  Private   Declare   Function   CreateRectRgn   Lib   "gdi32"   (ByVal   X1   As   Long,   ByVal   Y1   As   Long,   ByVal   X2   As   Long,   ByVal   Y2   As   Long)   As   Long  
  Private   Declare   Function   CombineRgn   Lib   "gdi32"   (ByVal   hDestRgn   As   Long,   ByVal   hSrcRgn1   As   Long,   ByVal   hSrcRgn2   As   Long,   ByVal   nCombineMode   As   Long)   As   Long  
  Private   Declare   Function   SetWindowRgn   Lib   "user32"   (ByVal   hWnd   As   Long,   ByVal   hrgn   As   Long,   ByVal   bRedraw   As   Boolean)   As   Long  
   
  Private   Const   RGN_AND   =   1  
  Private   Const   RGN_COPY   =   5  
  Private   Const   RGN_DIFF   =   4  
  Private   Const   RGN_MAX   =   RGN_COPY  
  Private   Const   RGN_MIN   =   RGN_AND  
  Private   Const   RGN_OR   =   2  
  Private   Const   RGN_XOR   =   3  
   
  Private   Sub   form_load()  
  Dim   hrgn1   As   Long,   hrgn2   As   Long,   hrgn   As   Long  
   
  hrgn1   =   CreateRoundRectRgn(0,   0,   500,   500,   50,   50)  
  hrgn2   =   CreateRectRgn(0,   450,   500,   500)  
   
  CombineRgn   hrgn1,   hrgn1,   hrgn2,   RGN_OR  
   
  Debug.Print   "hrgn=";   hrgn,   "Hrgn1=";   hrgn1,   "Hrgn2=";   hrgn2  
  SetWindowRgn   Me.hWnd,   hrgn1,   True  
   
  End   Sub  
  Top

相关问题

  • 如何让页面显示回到最顶端和最底端?
  • 对了 怎么把主页和浏览器的底端 顶端 对齐!
  • 在刷新完edit控件后能不能使纵向的滚动条位于最底端,而不是回到顶端??
  • 怎么画矩形
  • 图片底端对齐
  • 急急急!!!我有一个很长的表格型form,在最后一行修改或增加记录时屏幕总是滚到屏幕顶端的第一条记录,要手工滚回,操作很不方便。能否用程序使的增加记录时屏幕不滚动或自动滚到屏幕底端。谢谢!!!
  • 如何画一个矩形???
  • 怎样画矩形呀
  • 实现一圆角矩形
  • 画矩形的小问题

关键词

  • hrgn
  • 角
  • byval
  • longprivate
  • gdi32
  • const rgn
  • as long
  • 创建一个
  • lib
  • declare function

得分解答快速导航

  • 帖主:Terry_05
  • pasl

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo