窗体分为两部分:客户区(Client area)和非客户区(Non-Client area) WM_PAINT消息.OnPaint()方法.GetDC()API函数都是处理窗体客户区绘制的   而标题栏处于非客户区中,所以WM_PAINT消息.OnPaint()方法.GetDC()API函数都用不上   GetWindowDC()是获得整个窗体的画布句柄(Device Context翻译为:设备清单,我习惯称为画布句柄),包括非客户区   GDI的绘制都离不开DC,因为操作系统必须知道你要在什么…
http://hi.baidu.com/3582077/item/77d3c1ff60f9fa5ec9f33754 调用API函数,在窗口非客户区绘图 GDI+的Graphics类里有个FromHdc函数,这个函数可以根据窗口设备上下文(DC)创建Graphics对象,在vc++中,窗口客户区与非客户区的绘图无非就是GetWindowDC和GetDC函数的不同调用.前者获得整个窗口DC,后者获得窗口客户区DC. 那么我们就可以在C#里,调用GetWindowDC函数获取整个窗口DC,然后通过Fr…
窗口分成两大部分:客户区和非客户区.非客户区再次细分:标题栏,如图片中顶部深蓝色:左边框,如图片中红色部分:上边框,如图片中绿色部分:右边框,如图片中右侧天蓝色部分:底边框,如图片中下面棕色部分. 之所以要有这样的区分,是因为,我在用函数SystemParametersInfo得到窗口的非客户区参数时,标题栏高度确实是上面深蓝色部分,不能达到客户区,在标题栏和客户区之间还有一个白色区域,我想这可能就是上边框吧. 需要用到的几个函数: PatBlt:作用是在指定的矩形区域用指定的Brush画刷来填…
DMZ是英文“demilitarized zone”的缩写,中文名称为“隔离区”,也称“非军事化区”.它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区,这个缓冲区位于企业内部网络和外部网络之间的小网络区域内,在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器.FTP服务器和论坛等.另一方面,通过这样一个DMZ区域,更加有效地保护了内部网络,因为这种网络部署,比起一般的防火墙方案,对攻击者来说又多了一道关卡.      …
ShowDialog(); // 模式窗体 Show(); // 非模式窗体 区别: 返回值不同,DialogResult/void 模式窗体会使程序中断,直到关闭模式窗口 打开模式窗体后不能切换到应用程序的其他窗体 子窗体和模式窗体互斥. 作者:耑新新,发布于  博客园 转载请注明出处,欢迎邮件交流:zhuanxinxin@foxmail.com…
在Windows Mobile窗体上,有“OK”和“X”两种形式按钮.1.在Form的属性里,设置“MinimizeBox=false”,则窗体显示”OK”,点击该按钮窗体销毁并退出.2.设置“MinimizeBox=true”,则窗体显示”X”,点击该按钮,窗体隐藏但不销毁.3.X不能关闭窗体,OK才是关闭,这是与桌面系统的一个重要区别. 但有时我们希望在点击“X”按钮的时候能够销毁窗体,而不是隐藏该窗体,那么如何实现呢?首先,点击“X”按钮的时候,并不激发窗体的closed方法,所以我们不能…
QPainter默认只能在paintEvent里面调用,但是: 在其他事件中绘制窗体,提示信息如下:QPainter::begin: Paint device returned engine == 0, type: 1 绘制操作应该在paintEvent中完成. 有一个属性值,在构造函数中设置可以在paintEvent()之外进行绘制: this->setAttribute(Qt::WA_PaintOutsidePaintEvent); 但是只支持X11,对于 Windows, Mac OS X…
绘制窗体渐变背景的函数,三个参数分别代表起始颜色,终止颜色,绘制方向procedure TForm1.Draw(StartColor:TColor;EndColor:TColor;Direction:Integer);vari:Integer;Dct:TRect;c1,c2,c3:byte;beginif Direction=0 thenbeginfor i:=0 to self.Width-1 dobeginc1:=GetRValue(StartColor)+Trunc(i*(GetRValu…
混个脸熟: procedure TWinControl.WMNCPaint(var Message: TMessage); const InnerStyles: , BDR_SUNKENINNER, BDR_RAISEDINNER, ); OuterStyles: , BDR_SUNKENOUTER, BDR_RAISEDOUTER, ); EdgeStyles: , , BF_SOFT, BF_FLAT); Ctl3DStyles: ); var DC: HDC; RC, RW, SaveRW…
1.http://www.cnblogs.com/yinxiangpei/articles/2613913.html 说明:Silverlight的ChildWindow组件给我们的开发带来了便利,比如说我们可以用它开发自定义对话框等.然而,这同时也带来了这样一个问题,ChildWindow组件只能以Modal Window(模式窗口)的形式进行应用,这也就是说同一时间只能有一个子窗体出现在应用程序中:另外,ChildWindow组件不能进行窗体大小的自定义缩放.如果我们想要开发多窗口的应用程序…