一個窗體特效,幫你了解幾個windows api函數.效果:windows桌面上增加一個簡單的遮罩層,其中WS_EX_TRANSPARENT 比較重要,它實現了鼠標穿透的功能。
[csharp] view plaincopy做一個大小合適的圖片,存成gif,這樣背景透明。
把button的背景設為該圖片,borderwidth為0,樣式為flat,就可以了。
至於拖動,一般用類,沒有一個一個按鈕的編寫拖動代碼。下面是一個拖動類。
C#控件拖動和縮放類
這幾天,因為項目需要,要對窗體上的控件進行拖動並對大小進行縮放,於是封裝了該類:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ItpClientProtype
{
class DragResizeControl
{
#region Field
private const int Band = 5;
private const int MinWidth = 10;
private const int MinHeight = 10;
private static EnumMousePointPosition m_MousePointPosition;
private static Point p, p1;
#endregion
#region Inner Object
private enum EnumMousePointPosition
{
MouseSizeNone = 0, //'無
MouseSizeRight = 1, //'拉伸右邊框
MouseSizeLeft = 2, //'拉伸左邊框
MouseSizeBottom = 3, //'拉伸下邊框
MouseSizeTop = 4, //'拉伸上邊框
MouseSizeTopLeft = 5, //'拉伸左上角
MouseSizeTopRight = 6, //'拉伸右上角
MouseSizeBottomLeft = 7, //'拉伸左下角
MouseSizeBottomRight = 8, //'拉伸右下角
MouseDrag = 9 // '鼠標拖動
}
#endregion
#region Constructor
public DragResizeControl()
{
// Nothing to do.
}
#endregion
#region Public Method
......余下全文>>
雙擊notifyicon圖標事件中,將你的軟件的當前窗口設置為激活狀態就可以。這樣Windows系統會自動將你的窗口放在最前端,而且在操作其他窗口時,該窗口會自動後移不會擋住其他窗口。屬性好像是Form.Active(),具體名稱忘記了。你可查一下。