• 當前位置:首頁 > IT技術 > Windows編程 > 正文

    捕獲winform的最小化,最大化,關閉事件
    2021-10-18 17:51:10

    捕獲winform的最小化,最大化,關閉事件

    因為項目需要在winform關閉的時候,處理一些程序,在滿足條件后,則關閉對話框。winform好像沒有處理最大化,最小化相關的事件,這里借用網上的一段代碼,對這些事件進行捕獲

    const?int?WM_SYSCOMMAND?=?0x112; ?

    const?int?SC_CLOSE?=?0xF060;

    const?int?SC_MINIMIZE?=?0xF020;

    const?int?SC_MAXIMIZE?=?0xF030;

    const?int?SC_RESTORE?=?61728;

    //窗體按鈕的攔截函數

    protected?override?void?WndProc(ref?Message?m){

    ????if?(m.Msg?==?WM_SYSCOMMAND){

    ????????if?(m.WParam.ToInt32()?==?SC_RESTORE){

    ? ? ? ? ? ? log.Info("窗口還原!");

    ????????}

    ????????if?(m.WParam.ToInt32()?==?SC_MINIMIZE)??//攔截最小化按鈕{

    ????????????//這里寫操作代碼

    ????????????log.Info("點擊最小化按鈕!");

    ????????}

    ????????if?(m.WParam.ToInt32()?==?SC_MAXIMIZE?)???//攔截窗體最大化按鈕{

    ????????????log.Info("點擊最大化按鈕!");

    ?????????????//.....................

    ????????}

    ????????if?(m.WParam.ToInt32()?==?SC_CLOSE)???????//攔截窗體關閉按鈕?{

    ????????????log.Info("點擊窗口關閉按鈕!");

    ????????}

    ????}

    ????base.WndProc(ref?m);

    }

    ?這里的前提需要確定事件對應的m.WParam是多少,這里有個小方法,在該程序處打斷點,調試應用程序的時候,點擊最小化,最大化等按鈕,程序就到到斷點處,你查看該值是多少,就可了。

    本文摘自 :https://blog.51cto.com/u

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码