的控件,所以还是可以在项目中使用的。我的这个例子用的就是这种方式实现的。二、窗体边框的处理我的窗体的边框是用图片来处理的,为了使窗体的边框在改变大小后的样式不改变,上下边框做成了3段式的,中间部分平铺,两端保持不变这样窗体任意缩放后样式都不会改变。如果对GDI熟悉的话,也可以不用图片来处理,直接绘制渐变填充也可以。我重写的承载图片的PictureBox,让PictureBox将所有的消息都传给父窗体来处理,这样就可以由父窗体统一的处理窗体的缩放和移动了,具体的代码如下:
fpublicpartialclassPictureBoxEXPictureBoxpublicdelegatevoiddelSetFormSizei
ti
tI
fopubliceve
tdelSetFormSizeevtSetFormSizeregio
属性privatebool_bTopLeftfalsepublicboolBTopLeftgetretur
_bTopLeftset_bTopLeftvalueprivatebool_bTopfalsepublicboolBTopgetretur
_bTopset_bTopvalueprivatebool_bTopRightfalsepublicboolBTopRightgetretur
_bTopRightset_bTopRightvalueprivatebool_bLeftfalsepublicboolBLeftgetretur
_bLeftset_bLeftvalueprivatebool_bBottomLeftfalsepublicboolBBottomLeftgetretur
_bBottomLeftset_bBottomLeftvalueprivatebool_bBottomfalsepublicboolBBottomgetretur
_bBottomset_bBottomvalueprivatebool_bRightfalsepublicboolBRightgetretur
_bRightset_bRightvalue
fprivatebool_bBottomRightfalsepublicboolBBottomRightgetretur
_bBottomRightset_bBottomRightvaluee
dregio
regio
构造函数summary构造函数summarypublicPictureBoxEXe
dregio
regio
重新鼠标消息co
sti
tWM_NCHITTEST0x0084co
sti
tHTTRANSPARENT1co
sti
tHTLEFT10co
sti
tHTRIGHT11co
sti
tHTTOP12co
sti
tHTTOPLEFT13co
sti
tHTTOPRIGHT14co
sti
tHTBOTTOM15co
sti
tHTBOTTOMLEFT0x10co
sti
tHTBOTTOMRIGHT17protectedoverridevoidW
dProcrefMessagembaseW
dProcrefmswitchmMsgcaseWM_NCHITTESTPoi
tvPoi
t
ewPoi
ti
tmLParam0xFFFFi
tmLParam160xFFFFvPoi
tPoi
tToClie
tvPoi
ti
ti
tI
fo1if_bTopLeftifvPoi
tX10i
tI
foHTTOPLEFTelseif_bLefti
tI
foHTLEFT
felseif_bBottomLefti
tI
foHTBOTTOMLEFTelseif_bBottomi
tI
foHTBOTTOMelseif_bBottomRighti
tI
foHTBOTTOMRIGHTelseif_bRighti
tI
foHTRIGHTelseif_bTopRightifvPoi
tXClie
tSizeWidth10i
tI
foHTTOPRIGHTelseif_bTopifvPoi
tY5mResultI
tPtrHTTOPi
tI
foHTTOPifevtSetFormSize
ulli
tI
fo1evtSetFormSizei
tI
fo将消息传给父窗体来处理mResultI
tPtrHTTRANSPARENTbreake
dregio
r