原文:
c# wpf 實現滑鼠固定在指定範圍內運動
需要實現帶有三個螢幕,三個螢幕分別顯示窗體,但滑鼠只能在主窗體中運動,不能移動到其他的兩個附屏中。
具體實現使用的是user32.dll下的getwindowrect(int hwnd, ref
rect lprect)函式。
clipcursor,函式名。該函式把滑鼠限制在
螢幕上的乙個矩形區域內,如果呼叫setcursor或用滑鼠設定的乙個隨後的滑鼠位置在該矩形區域的外面,則系統自動調整該位置以保持滑鼠在矩形區域之內。
bool clipcursor(
const rect * lprect
);引數
iprect:指向
rect
結構的指標
,該結構包含限制矩形區域左上角和右下角的
螢幕座標,如果該指標為null(空),則滑鼠可以在螢幕的任何區域移動。
1.游標是乙個共享資源,如果乙個應用控制了滑鼠,在將控制轉向另乙個應用之前,必須要使用
clipcursor
來釋放滑鼠,該呼叫過程必須具有對視窗的
winsta_writeattributes
訪問權。
2.此函式為
api函式,呼叫時要函式宣告:
private declare function clipcursor lib "user32" (lprect as any) as long
速查:windows nt:
3.1及以上版本;
windows:95
及以上版本;
windows ce
:不支援;標頭檔案:
winuser.h
;庫檔案;
user32.lib。
我主要實現的是限定螢幕,所以提供的介面直接和螢幕有關,其他的具體情況具體分析。
using system;
using system.linq;
using system.runtime.interopservices;
namespace tool.clipcursor
class
clipcursorhelper
[dllimport("user32.dll")]
static
extern
bool clipcursor(ref
rect lprect);
[system.runtime.interopservices.dllimport("user32.dll", entrypoint = "getwindowrect")]
extern
static
int getwindowrect(int hwnd, ref
rect lprect);
public
struct
rect
public
int left;
public
int top;
public
int right;
public
int bottom;
public rect(int32 left, int32 top, int32 right, int32 bottom)
left = left;
top = top;
right = right;
bottom = bottom;
///
///設定滑鼠顯示在主屏範圍內
//////
public
static
bool setcursorinprimaryscreen()
system.windows.forms.screen screen = system.windows.forms.screen.allscreens.orderby(t => t.workingarea.x).first();
rect rect = new
rect(screen.bounds.x, screen.bounds.y, screen.bounds.right+screen.bounds.x, screen.bounds.bottom);
return clipcursor(ref rect);
///
///恢復滑鼠顯示,可以所以螢幕的任何位置
//////
public
static
bool default()
system.windows.forms.screen screen = system.windows.forms.screen.allscreens.orderbydescending(t => t.workingarea.x).first();
rect rect = new
rect(0, 0, screen.bounds.right+ screen.bounds.x, screen.bounds.bottom);
return clipcursor(ref rect);
1、在除錯過程中發現每次窗體切換(如生成新的窗體),滑鼠的範圍又都返回到可以在任意位置使用,所以在每當生成窗體的時候都需要調一下上面的介面;
2、當使用alt+tab切換任務後,滑鼠的限定範圍也會不起作用,目前還無法解決;
但目前已經滿足需要,網友知道如何避免上述兩種問題的望交流學習。
CSS實現footer固定在頁面底部
作為乙個頁面仔你一定遇到過 當乙個html頁面中含有較少的內容時,web頁面的 footer 部分隨著飄上來,處在頁面的半腰中間,給視覺效果帶來極大的影響,讓你的頁面看上去很不好看,特別是現在寬屏越來越多,這種現象更是常見。那麼如何將web頁面的 footer 部分永遠固定在頁面的底部呢?先來看下下...
jQuery外掛程式實現DIV固定在頁面中
url 給力技術 url 我們瀏覽 的時候,經常能看到固定在頁面中且不會隨著滾動條滾動的div層,這樣的浮動效果可通過portamento這個jquery外掛程式實現。jquery外掛程式實現div浮動在頁面固定位置中 portamento是乙個輕量級的jquery外掛程式,它具有簡單並且容易使用的...
將footer固定在頁面底部的實現方法
html結構 header main content footer css設定 html body header main main的padding bottom值要等於或大於footer的height值 footer首先,設定body的高度至少充滿整個螢幕,並且body作為footer絕對定位的參...