热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WinAPI:DrawFrameControl绘制控件

声明:DrawFrameControl(DC:HDC;{设备环境句柄}constRect:TRect;{矩形}uType,uState:UINT{控件类型与控件状态}):BOO

//声明:
DrawFrameControl(DC: HDC; {设备环境句柄}const Rect: TRect; {矩形}uType, uState: UINT {控件类型与控件状态}
): BOOL;//控件类型 uType 参数可选值:
DFC_CAPTION = 1; {标题按钮}
DFC_MENU = 2; {菜单}
DFC_SCROLL = 3; {滚动条按钮}
DFC_BUTTON = 4; {标准按钮}
DFC_POPUPMENU = 5; {弹出菜单}//控件状态 uState 参数可选值:{针对 DFC_CAPTION}
DFCS_CAPTIONCLOSE = 0;
DFCS_CAPTIONMIN = 1;
DFCS_CAPTIONMAX = 2;
DFCS_CAPTIONRESTORE = 3;
DFCS_CAPTIONHELP = 4;{针对 DFC_MENU}
DFCS_MENUARROW = 0;
DFCS_MENUCHECK = 1;
DFCS_MENUBULLET = 2;
DFCS_MENUARROWRIGHT = 4;{针对 DFC_SCROLL}
DFCS_SCROLLUP = 0;
DFCS_SCROLLDOWN = 1;
DFCS_SCROLLLEFT = 2;
DFCS_SCROLLRIGHT = 3;
DFCS_SCROLLCOMBOBOX = 5;
DFCS_SCROLLSIZEGRIP = 8;
DFCS_SCROLLSIZEGRIPRIGHT = $10;{针对 DFC_BUTTON}
DFCS_BUTTONCHECK = 0;
DFCS_BUTTONRADIOIMAGE = 1;
DFCS_BUTTONRADIOMASK = 2;
DFCS_BUTTONRADIO = 4;
DFCS_BUTTON3STATE = 8;
DFCS_BUTTONPUSH = $10;{通用状态}
DFCS_INACTIVE = $100;
DFCS_PUSHED = $200;
DFCS_CHECKED = $400;
DFCS_TRANSPARENT = $800;
DFCS_HOT = $1000;
DFCS_ADJUSTRECT = $2000;
DFCS_FLAT = $4000;
DFCS_MONO = $8000;//举例:
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls;typeTForm1 = class(TForm)RadioGroup1: TRadioGroup;RadioGroup2: TRadioGroup;RadioGroup3: TRadioGroup;RadioGroup4: TRadioGroup;RadioGroup5: TRadioGroup;RadioGroup6: TRadioGroup;Panel1: TPanel;procedure RadioGroup1Click(Sender: TObject);procedure RadioGroup2Click(Sender: TObject);procedure RadioGroup3Click(Sender: TObject);procedure RadioGroup4Click(Sender: TObject);procedure RadioGroup5Click(Sender: TObject);procedure RadioGroup6Click(Sender: TObject);procedure Draw;end;varForm1: TForm1;implementation{$R *.dfm}varDFC : Integer = 0;DFCS1: Integer = 0;DFCS2: Integer = 0;procedure TForm1.Draw;
beginPanel1.Refresh;DrawFrameControl(GetDC(Panel1.Handle), Rect(10,10,100,50), DFC, DFCS1 or DFCS2);
end;procedure TForm1.RadioGroup1Click(Sender: TObject);
beginPanel1.Refresh;case RadioGroup1.ItemIndex of0: beginDFC := DFC_CAPTION;RadioGroup3.Enabled := True;RadioGroup4.Enabled := False;RadioGroup5.Enabled := False;RadioGroup6.Enabled := False;end;1: beginDFC := DFC_MENU;RadioGroup3.Enabled := False;RadioGroup4.Enabled := True;RadioGroup5.Enabled := False;RadioGroup6.Enabled := False;end;2: beginDFC := DFC_SCROLL;RadioGroup3.Enabled := False;RadioGroup4.Enabled := False;RadioGroup5.Enabled := True;RadioGroup6.Enabled := False;end;3: beginDFC := DFC_BUTTON;RadioGroup3.Enabled := False;RadioGroup4.Enabled := False;RadioGroup5.Enabled := False;RadioGroup6.Enabled := True;end;4: beginDFC := DFC_POPUPMENU;RadioGroup3.Enabled := False;RadioGroup4.Enabled := True;RadioGroup5.Enabled := False;RadioGroup6.Enabled := False;end;end;
end;procedure TForm1.RadioGroup2Click(Sender: TObject);
begincase RadioGroup2.ItemIndex of0: DFCS1 := DFCS_INACTIVE;1: DFCS1 := DFCS_PUSHED;2: DFCS1 := DFCS_CHECKED;3: DFCS1 := DFCS_TRANSPARENT;4: DFCS1 := DFCS_HOT;5: DFCS1 := DFCS_ADJUSTRECT;6: DFCS1 := DFCS_FLAT;7: DFCS1 := DFCS_MONO;end;Draw;
end;procedure TForm1.RadioGroup3Click(Sender: TObject);
begincase RadioGroup3.ItemIndex of0: DFCS2 := DFCS_CAPTIONCLOSE;1: DFCS2 := DFCS_CAPTIONMIN;2: DFCS2 := DFCS_CAPTIONMAX;3: DFCS2 := DFCS_CAPTIONRESTORE;4: DFCS2 := DFCS_CAPTIONHELP;end;Draw;
end;procedure TForm1.RadioGroup4Click(Sender: TObject);
begincase RadioGroup4.ItemIndex of0: DFCS2 := DFCS_MENUARROW;1: DFCS2 := DFCS_MENUCHECK;2: DFCS2 := DFCS_MENUBULLET;3: DFCS2 := DFCS_MENUARROWRIGHT;end;Draw;
end;procedure TForm1.RadioGroup5Click(Sender: TObject);
begincase RadioGroup5.ItemIndex of0: DFCS2 := DFCS_SCROLLUP;1: DFCS2 := DFCS_SCROLLDOWN;2: DFCS2 := DFCS_SCROLLLEFT;3: DFCS2 := DFCS_SCROLLRIGHT;4: DFCS2 := DFCS_SCROLLCOMBOBOX;5: DFCS2 := DFCS_SCROLLSIZEGRIP;6: DFCS2 := DFCS_SCROLLSIZEGRIPRIGHT;end;Draw;
end;procedure TForm1.RadioGroup6Click(Sender: TObject);
begincase RadioGroup6.ItemIndex of0: DFCS2 := DFCS_BUTTONCHECK;1: DFCS2 := DFCS_BUTTONRADIOIMAGE;2: DFCS2 := DFCS_BUTTONRADIOMASK;3: DFCS2 := DFCS_BUTTONRADIO;4: DFCS2 := DFCS_BUTTON3STATE;5: DFCS2 := DFCS_BUTTONPUSH;end;Draw;
end;end.//效果图:
r_10m.png


附上窗体结构代码: object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 386 ClientWidth = 499 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object RadioGroup1: TRadioGroup Left = 0 Top = 8 Width = 137 Height = 129 Caption = 'RadioGroup1' Items.Strings = ( 'DFC_CAPTION ' 'DFC_MENU ' 'DFC_SCROLL ' 'DFC_BUTTON ' 'DFC_POPUPMENU ') TabOrder = 0 OnClick = RadioGroup1Click end object RadioGroup2: TRadioGroup Left = 0 Top = 143 Width = 137 Height = 170 Caption = 'RadioGroup2' Items.Strings = ( 'DFCS_INACTIVE' 'DFCS_PUSHED' 'DFCS_CHECKED' 'DFCS_TRANSPARENT' 'DFCS_HOT' 'DFCS_ADJUSTRECT' 'DFCS_FLAT' 'DFCS_MONO') TabOrder = 1 OnClick = RadioGroup2Click end object RadioGroup3: TRadioGroup Left = 143 Top = 8 Width = 178 Height = 129 Caption = 'RadioGroup3' Items.Strings = ( 'DFCS_CAPTIONCLOSE ' 'DFCS_CAPTIONMIN' 'DFCS_CAPTIONMAX' 'DFCS_CAPTIONRESTORE' 'DFCS_CAPTIONHELP') TabOrder = 2 OnClick = RadioGroup3Click end object RadioGroup4: TRadioGroup Left = 327 Top = 8 Width = 170 Height = 129 Caption = 'RadioGroup4' Items.Strings = ( 'DFCS_MENUARROW' 'DFCS_MENUCHECK' 'DFCS_MENUBULLET' 'DFCS_MENUARROWRIGHT') TabOrder = 3 OnClick = RadioGroup4Click end object RadioGroup5: TRadioGroup Left = 143 Top = 143 Width = 178 Height = 170 Caption = 'RadioGroup5' Items.Strings = ( 'DFCS_SCROLLUP' 'DFCS_SCROLLDOWN' 'DFCS_SCROLLLEFT' 'DFCS_SCROLLRIGHT' 'DFCS_SCROLLCOMBOBOX' 'DFCS_SCROLLSIZEGRIP' 'DFCS_SCROLLSIZEGRIPRIGHT') TabOrder = 4 OnClick = RadioGroup5Click end object RadioGroup6: TRadioGroup Left = 327 Top = 143 Width = 170 Height = 170 Caption = 'RadioGroup6' Items.Strings = ( 'DFCS_BUTTONCHECK' 'DFCS_BUTTONRADIOIMAGE' 'DFCS_BUTTONRADIOMASK' 'DFCS_BUTTONRADIO' 'DFCS_BUTTON3STATE' 'DFCS_BUTTONPUSH') TabOrder = 5 OnClick = RadioGroup6Click end object Panel1: TPanel Left = 0 Top = 319 Width = 499 Height = 67 Align = alBottom Caption = 'Panel1' TabOrder = 6 end end



推荐阅读
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • C#多线程解决界面卡死问题的完美解决方案
    当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ... [详细]
  • 本文介绍了解决mysql 5.1启动问题的方法,通过修改my.ini文件中的相关配置,包括innodb_data_home_dir和skip-innodb等,可以解决启动问题。同时还介绍了如何调整内存池来存储metadata信息。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
author-avatar
程橙屋04_kc275_938
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有