如何用c#做乙個懸浮視窗程式
用c#做乙個像
flashget
的懸浮視窗,其實很簡單,不像以前需要呼叫很多系統
api。大致的步驟如下。
首先是主窗體部分,即要判斷窗體的狀態來決定是否顯示懸浮視窗。
區域性成員宣告:
private formwindowstate fwsprevious;
private frmtopmost mytopmost;
主窗體的
load
事件:private
void frmmain_load(object sender, system.eventargs e)
主窗體的
sizechanged
事件:private
void frmmain_sizechanged(object sender, system.eventargs e)
else
if( this.windowstate != fwsprevious )
}然後,就是還原視窗方法,即供懸浮視窗進行呼叫的。
//////
restore window state
///
public
void restorewindow()
下來就是懸浮視窗部分**,首先要設定其窗體的
formborderstyle
為none
,然後設定其的
topmost
為true
,接下來,就是主要是三個滑鼠事件的處理,以下,具體說明如何實現的。
區域性成員宣告。
private point ptmousecurrrnetpos, ptmousenewpos,
ptformpos, ptformnewpos;
private
bool blnmousedown=false;
private frmmain pparent;
懸浮視窗的建構函式。
public frmtopmost( frmmain pmain )
懸浮視窗的load事件。
private
void frmtopmost_load(object sender, system.eventargs e)
主要的三個滑鼠事件,即
mousedown
、mousemove
、mouseup
三個事件。
private
void frmtopmost_mousemove(object sender, system.windows.forms.mouseeventargs e)
}private
void frmtopmost_mousedown(object sender, system.windows.forms.mouseeventargs e)
}private
void frmtopmost_mouseup(object sender, system.windows.forms.mouseeventargs e)
然後就是雙擊懸浮窗體,進行恢復主窗體。
private
void frmtopmost_doubleclick(object sender, system.eventargs e)
private
void switchtomain()
此外,還可以給懸浮視窗新增contextmenu,來輔助操作,這裡就不細說了。
private system.windows.forms.contextmenu mnupopup;
private system.windows.forms.menuitem mnumainwindow;
private system.windows.forms.menuitem mnuexit;
private
void mnumainwindow_click(object sender, system.eventargs e)
private
void mnuexit_click(object sender, system.eventargs e)
如何用C 做乙個懸浮視窗程式
用 c 做乙個像 flashget 的懸浮視窗,其實很簡單,不像以前需要呼叫很多系統 api。大致的步驟如下。首先是主窗體部分,即要判斷窗體的狀態來決定是否顯示懸浮視窗。區域性成員宣告 private formwindowstate fwsprevious private frmtopmost my...
愚翁專欄 如何用C 做乙個懸浮視窗程式
用 c 做乙個像 flashget 的懸浮視窗,其實很簡單,不像以前需要呼叫很多系統 api。大致的步驟如下。首先是主窗體部分,即要判斷窗體的狀態來決定是否顯示懸浮視窗。區域性成員宣告 private formwindowstate fwsprevious private frmtopmost my...
用C 做乙個懸浮視窗
用c 做乙個懸浮視窗 含三種移動無標題窗體的辦法 2006年08月24日 星期四 16 36 今天看幾個c 原始碼,再到愚翁專欄 第一步 建立乙個窗體,設定其屬性 this.formborderstyle system.windows.forms.formborderstyle.none this....