在WPF中處理Windows消息

在Winform中 處理Windows消息通過重寫WndProc方法

在WPF中 使用的是System.Windows. Sytem.Windows.Controls等名字空間,沒有WndProc函數

WPF中處理消息首先要獲取窗口句柄,創建HwndSource對象 通過HwndSource對象添加消息處理回調函數。

此外 WPF中沒有Handle屬性,不能直接獲得窗口的句柄

可以在構造函數中指定消息進行消息處理的回調函數,也可以在資源初始化后指定,在很多地方都可以指定。

以下是在資源初始化后指定

protected?override?void?OnSourceInitialized(EventArgs?e)
????????{
????????????base.OnSourceInitialized(e);
????????????HwndSource?hwndSource?=?PresentationSource.FromVisual(this)?as?HwndSource;
????????????if?(hwndSource?!=?null)
????????????????hwndSource.AddHook(new?HwndSourceHook(this.WndProc));
????????}

注意要使用System.Windows.Interop名字空間,以上增加了一個回調委托

protected?virtual?IntPtr?WndProc(IntPtr?hwnd,?int?msg,?IntPtr?wParam,?IntPtr?lParam,?ref?bool?handled)
{
????switch?(msg)
????{
????????case?Win32.WM_NCHITTEST:
????????????{
????????????????Point?MouseScreenPoint?=?new?Point(lParam.ToInt32()?&?0xFFFF,?lParam.ToInt32()?>>?16);
????????????????Point?MouseWindowPoint?=?this.PointFromScreen(MouseScreenPoint);
????????????????if?(MouseWindowPoint.X?<?10?&&?MouseWindowPoint.Y?<?10)
????????????????{
????????????????????handled?=?true;
????????????????????return?(IntPtr)Win32.HTTOPLEFT;
????????????????}
????????????????
????????????????break;
????????????}
????}
????return?IntPtr.Zero;
}

這里有一個引用傳遞的參數handled ,處理消息后設置為true 告訴系統這個消息已經處理過了。

轉載于:https://www.cnblogs.com/mschen/p/4312707.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259328.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259328.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259328.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android Material風格的應用(三)--DrawerLayout

添加抽屜導航 Android Material風格的應用(一)--AppBar TabLayoutAndroid Material風格的應用(二)--RecyclerViewAndroid Material風格的應用(三)--DrawerLayoutAndroid Material風格的應用(四)--FloatActionButtonAndroid Material風格的應用(五)--CollapsingToolbar DrawerLa…

html5 數據緩存,HTML5: 本地緩存

HTML5 提供了兩種在客戶端存儲數據的新對象&#xff1a;localStorage&#xff1a;沒有時間限制的數據存儲&#xff0c;在同一個瀏覽器中&#xff0c;只要沒被手動清理&#xff0c;第二天、第二周或下一年之后&#xff0c;數據依然可用。sessionStorage&#xff1a;針對一個 ses…

C# 委托:把方法組合到一個數組中使用

C# 委托&#xff1a;把方法組合到一個數組中使用 using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace ConsoleApplication1 {class MathOperations{public static double MultiplyByTwo(double value){return value * 2;}public…

上傳Text文檔并轉換為PDF

今天在ASP.NET MVC環境中學習一些PDF相關的知識&#xff0c;想法是上傳文件成功時&#xff0c;并把文件轉換為PDF文檔。 打開你的專案&#xff0c;運行NuGet包管理器&#xff0c;下載一個叫iTextSharp的東東&#xff1a;點擊Install&#xff0c;按鈕提示確認安裝&#xff0c;成…

某著名公司2015暑期實習招聘試題及相關內容復習

1.&#xff09;輸出下面的結果<pre name"code" class"cpp">#include <iostream> using namespace std;int main(int argc, char *argv[]) {int **a[5][4];int *b[5][4];int *c[5];int d[5][4];char *e"helloworld";char g[]"01…

遞歸函數(九):最小不動點定理

遞歸函數&#xff08;一&#xff09;&#xff1a;開篇遞歸函數&#xff08;二&#xff09;&#xff1a;編寫遞歸函數的思路和技巧遞歸函數&#xff08;三&#xff09;&#xff1a;歸納原理遞歸函數&#xff08;四&#xff09;&#xff1a;全函數與計算的可終止性遞歸函數&#…

html中單選框顏色怎么改,如何更改單選按鈕的顏色?

侃侃無極一種快速的解決方法是使用來覆蓋單選按鈕的輸入樣式:after&#xff0c;但是創建自己的自定義工具箱可能是更好的做法。 input[typeradio]:after { width: 15px; height: 15px; border-radius: 15px; top: -2px; left: -1px; …

PhotoShop

前景色填充&#xff1a;Altdelete 背景色填充&#xff1a;Ctrldelete 切換前景/背景色&#xff1a;X 鍵 接按d 是默認的黑色和白色轉載于:https://www.cnblogs.com/xingfuzzhd/p/3358156.html

python 循環技巧

原文地址&#xff1a;http://docs.pythontab.com/python/python3.4/datastructures.html#tut-tuples 在字典中循環時&#xff0c;關鍵字和對應的值可以使用 iteritems() 方法同時解讀出來。 knights {gallahad: the pure, robin: the brave}for k,v in knights.items():print(…

C++內存管理詳解

C內存管理詳解 轉載&#xff1a;http://blog.csdn.net/yingxunren/article/details/4344933 偉大的Bill Gates 曾經失言&#xff1a;   640K ought to be enough for everybody — Bill Gates 1981   程序員們經常編寫內存管理程序&#xff0c;往往提心吊膽。如果不想觸…

如何先執行input (checkbox,radio)再執行函數

2019獨角獸企業重金招聘Python工程師標準>>> 遇到一個問題&#xff0c;當input type"checkbox"點擊時&#xff0c;沒有立即執行勾選或去勾&#xff0c;而是先執行函數&#xff0c;如下代碼 $(".sidebar_cart .cart_list ul").on("click&qu…

計算機基礎及msoffice應用好考嗎,全國計算機等級考試考試一級WPS Office和MS Office有什么不同?那個好考?...

以后的計算機office中的word等時2010版本&#xff0c;計算機一級有兩個選擇&#xff1a;1、一級WPS Office1. 采用無紙化考試&#xff0c;上機操作。考試時間為90 分鐘。2. 軟件環境:Windows 7 操作系統,WPS Office 2012 辦公軟件。3. 在指定時間內,完成下列各項操作:(1) 選擇題…

Linux服務器上監控網絡帶寬的18個常用命令

本文介紹了一些可以用來監控網絡使用情況的Linux命令行工具。這些工具可以監控通過網絡接口傳輸的數據&#xff0c;并測量目前哪些數據所傳輸的速度。入站流量和出站流量分開來顯示。 作者&#xff1a;布加迪編譯來源&#xff1a;51CTO.com|2014-04-11 10:10移動端收藏分享【51…

strcpy和memcpy的區別

轉載&#xff1a;http://www.cnblogs.com/stoneJin/archive/2011/09/16/2179248.html strcpy與memcpy都是標準的C庫函數&#xff0c;strcpy提供了字符串的復制。即strcpy只用于字符串復制&#xff0c;并且它不僅復制字符串內容之外&#xff0c;還會復制字符串的結束符。 已知…

js正則表達式語法

1. 正則表達式規則 1.1 普通字符 字母、數字、漢字、下劃線、以及后邊章節中沒有特殊定義的標點符號&#xff0c;都是"普通字符"。表達式中的普通字符&#xff0c;在匹配一個字符串的時候&#xff0c;匹配與之同樣的一個字符。 舉例1&#xff1a;表達式 "c&q…

計算機常見屏幕英語語句,計算機常見屏幕英語

計算機系統常見的屏幕英語對照,。、計算機常見屏幕英語(SCREEN ENGLISH)access 訪問 data 數據 hard disk 硬盤 files 文件directory 目錄 delete 刪除(同&#xff1a;remove) exists 存在 name 名稱 read-only 只讀 change 修改&#xff0c;改變 save 保存 password 密碼 conn…

[轉]Windows Phone 7程序設計”完全版電子書可以免費下載了

本文轉自&#xff1a;http://www.cnblogs.com/salam/archive/2010/10/29/1864246.html 現在學習Windows Phone 7開發資料十分有限&#xff0c;除了MSDN的官方開發文檔外和一些博客外&#xff0c;幾無其他的學習渠道。幸運地是美國的資深程序員兼作家Charles Petzold為大家免費放…

土豆春季實習試題之慘烈教訓

今天做土豆的春季C實習生招聘試題&#xff0c;很多不應該錯的錯了&#xff0c;在此挑出一些重要的錯誤&#xff0c;供自己參考&#xff0c;以免以后再犯。 一、一道編程題&#xff0c;很簡單&#xff0c;但是錯了。 題目&#xff1a; 輸入一個數組&#xff0c;求它的逆序數組…

linux-redhat替換yum網絡源為centos網絡源

2019獨角獸企業重金招聘Python工程師標準>>> 1.為什么要替換 redhat系統使用yum命令安裝軟件時會出現This system is not registered with RHN. RHN support will be disabled. 原因是redhat的yum安裝軟件需要注冊&#xff0c;是收費的。而centos的yum源是免費的。這…

計算機如何打開無線網絡適配器,win7系統下網絡適配器打不開怎么解決

通常情況下我們的電腦中都會有一個網絡適配器&#xff0c;這是計算機聯網的設備&#xff0c;不過最近有深度技術win7旗艦版系統用戶卻遇到了網絡適配器打不開的情況&#xff0c;該怎么辦呢&#xff0c;接下來系統城小編就給大家分享一下win7系統下網絡適配器打不開的具體解決方…