protected override void WndProc(ref Message m){Point vPoint = new Point((int)m.LParam & 0xFFFF,(int)m.LParam >> 16 & 0xFFFF);這句話為什么會得到鼠標位置,他和Cursor.Position直接獲得鼠標的位置有什么不同呢?
2 回答

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
右移運算符 (>>) 將第一個操作數向右移動第二個操作數所指定的位數。
如果第一個操作數為 int 或 uint(32 位數),則移位數由第二個操作數的低五位給出(第二個操作數 & 0x1f)。
如果第一個操作數為 long 或 ulong(64 位數),則移位數由第二個操作數的低六位給出(第二個操作數 & 0x3f)。
如果第一個操作數為 int 或 long,則右移位是算術移位(高序空位設置為符號位)。如果第一個操作數為 uint 或 ulong 類型,則右移位是邏輯移位(高位填充 0)。
用戶定義的類型可重載 >> 運算符;第一個操作數的類型必須為用戶定義的類型,第二個操作數的類型必須為 int。有關更多信息,請參見 operator。重載二元運算符時,也會隱式重載相應的賦值運算符(如果有)。
具體的使用方法的話:
int i = 8;
Console.WriteLine(i >> 3);
/*
Output:
1
向右移動3位,相當于除以8
*/
- 2 回答
- 0 關注
- 910 瀏覽
添加回答
舉報
0/150
提交
取消