Delphi给窗体镶边-为控件加边框,描边,改变边框颜色
2015-07-09 17:38
726 查看
PS:因为我现在用的电脑是WIN7 64位系统,所以没有实现功能,不知道XP是否可行。
//1.定义方法 procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPAINT; //2.实现方法 procedure TForm1.WMNCPaint(var Msg: TWMNCPaint); var dc:hDc; Pen:hPen; OldPen:hPen; OldBrush:hBrush; begin inherited; //获取本窗口设备上下文 dc:=GetWindowDC(Handle); msg.Result:=1; //创建画笔,实线、宽度为l、红色 Pen:=CreatePen(PS_SOLID,1,RGB(255,0,0)); //将新创建的画笔选入窗体的设备上下文 OldPen:=SelectObject(dc,Pen); //将系统库存的空画刷入窗体的设备上下文 OldBrush:=SelectObject(dc,GetStockObject(NULL_BRUSH)); //给窗体“镶边” Rectangle(dc,0,0,Form1.Width,Form1.Height); //恢复旧画笔和旧画刷 SelectObject(dc,OldBrush); SelectObject(dc,oldPen); //删除新创建的画笔,释放系统资源 DeleteObject(Pen); //释放设备上下文 ReleaseDC(Handle,Canvas.Handle); end; //3.DBGrid控件描边 procedure TForm1.FormPaint(Sender: TObject); var Rct: TRect; begin Rct:=Rect(Dbgrid1.Left-1,Dbgrid1.Top-1,Dbgrid1.Left+Dbgrid1.Width+1,Dbgrid1.top+Dbgrid1.Height+1); with Form1.Canvas do begin Pen.Color := clRed; Pen.Width := 1; Brush.Style := bsClear; Rectangle(Rct); end; end;
相关文章推荐
- DelphiXE7操作sqlite数据库
- Delphi中WebBrowser的使用技巧汇总
- delphi 中TStringList Clear 方法的时候该对象有没有被释放
- delphi 回调函数例子 用函数过程作为参数
- Delphi皮肤资源网站收集
- BCB Delphi WIN7 默认 以管理员身份运行 程序
- Delphi 包的设计思想及它与PAS、BPL、DCU、DLL、OXC的关系。
- delphi Tpagecontrol 动态增加页面
- Delphi与各种装置设备之间的开发整合及应用实例
- Delphi Excel FastReport
- Delphi 2010 报 stack overflow的错误解决方法
- 如何调试delphi自带的源代码
- delphi使用winlicense授权
- delphi for DirectUI界面库
- delphi for DirectUI界面库
- delphi XE8 找不到手机(真机)的解决办法
- delphi中adoquery控件parameters的sql查询示例
- Delphi7 中使用FastMM
- DELPHI指针的使用
- 关于Delphi中的字符串的详细分析