西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁編程開發(fā)其它知識 → winform程序最小化到托盤后不能正常關(guān)機(jī)的解決方案

winform程序最小化到托盤后不能正常關(guān)機(jī)的解決方案

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2012/12/12 11:53:57字體大小:A-A+

作者:西西點擊:0次評論:0次標(biāo)簽: 關(guān)機(jī)

  • 類型:定時工具大。5.3M語言:中文 評分:5.0
  • 標(biāo)簽:
立即下載

問題描述:

在最近的windows程序中,由于實現(xiàn)了winform程序點擊窗口的關(guān)閉按鈕,不直接退出程序,而是將程序最小化到托盤中,這樣當(dāng)程序沒有退出之前,直接關(guān)機(jī)會導(dǎo)致關(guān)機(jī)不能正常進(jìn)行。

問題原因:

操作系統(tǒng)會在用戶點擊關(guān)機(jī)后,發(fā)送一個關(guān)閉的消息到當(dāng)前運行的應(yīng)用程序,這個消息的ID號問0x11,這樣當(dāng)應(yīng)用程序接受到消息后就會關(guān)閉自身,然后操作系統(tǒng)就可正常關(guān)閉了。但是我們在實現(xiàn)了上面的功能后,會在FormClosing事件中添加一段代碼,

e.Cancel = true;
//最小化到托盤
NormalToMinimized();

  這樣我們雖然實現(xiàn)了功能,但是在接受到操作系統(tǒng)發(fā)送來的關(guān)閉窗口的消息的時候,就不能關(guān)閉程序了。

解決方案:

1.在應(yīng)用程序的主窗口添加一個私有的標(biāo)識,用來標(biāo)識,關(guān)閉窗口的事件是由用戶點擊引起的還是由操作系統(tǒng)發(fā)送的小心引起的。

 2.在應(yīng)用程序主窗口中添加對系統(tǒng)消息的處理,這個處理的過程需要重寫窗口的窗口過程,也就是窗口處理操作系統(tǒng)消息的方法。

protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x11)
            {
             //自定義的事件觸發(fā)標(biāo)識,為true時表示窗口的關(guān)閉事件是由操作系統(tǒng)的關(guān)機(jī)操作引起的。
             isExitAppFalg = true;


            }
            base.WndProc(ref m);
        }

3.修改FormClosing事件的處理過程,添加一個判斷就可以了

         if (!isExitAppFalg)
            {
                e.Cancel = true;
                //最小化到托盤
                NormalToMinimized();
            }

這樣就把實現(xiàn)功能所帶了的副作用給解決了。

    定時關(guān)機(jī)
    (13)定時關(guān)機(jī)
    像小編一樣,每天大部分時間都在電腦面前度過,一款好用的定時關(guān)機(jī)軟件是必備的,既可以避免忘記關(guān)機(jī)又方便管理你的電腦,今天小編就推薦一些好用易用的定時關(guān)機(jī)軟件給大家定時關(guān)機(jī)軟件大全小編整理了一些非常好用的定時關(guān)機(jī)軟件在這里做了一個合集分享給大家,完全綠色免費,親測完美使用。定時關(guān)機(jī)小助手這指的是一類功能比較強(qiáng)大的定時關(guān)機(jī)軟件,如酷開定時關(guān)機(jī)小助手等,他們不僅僅可以幫你關(guān)機(jī),還可以幫你管理日常的一些生活...更多>>

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
    推薦文章

    沒有數(shù)據(jù)