默认地,一个Form窗口可以通过标题栏移动,但是自定义的悬浮窗口没有标题栏,所以是不能移动的。
需要手动的实现窗口的移动:
设计思路;
① 鼠标按下时,记录窗口起始位置;
② 鼠标移动时,计算鼠标移动的位移Delta,然后将窗口移相同的位移;
③ 鼠标抬起时,结束移动操作;
思考:
new AfMoveSupport(floatBox);
创建了一个AfMoveSupport对象,却没有引用它,那这个对象会被自动销毁吗?
相对坐标e.Location;
屏幕坐标 pos=target.PointToScreen(e.Location);
① 在Form1里,添加右键菜单;
② 手工添加MouseUp事件响应,显示右键菜单;
悬浮窗口的主要用途:
① 呈现程序的状态;
② 接收拖放输入Drag&Drop;
代码实现:
①修改myFloatBox.OnPaint()
绘制出百分比的效果;
② 模拟进度显示
模拟一个下载过程,将进度呈现到悬浮窗中;
① 文字描边效果
为了突出文字的显示效果,先以粗体绘制,再以细体绘制。叠加之后类似描边的效果。