隱藏windows工作列中的視窗顯示

來源:互聯網
上載者:User

標籤:

在實際應用中遇到類似下列需要:

隱藏windows視窗,在windows工作列中視窗不可見,但應用程式在後台運行。

 windows應用程式的視窗預設會在工作列中添加一個可見的視窗項,方便使用者操作和在不同應用程式中切換。

考慮到windows作業系統是基於shell的,尋找shell的介面資料會發現 ITaskbarList interface 。ITaskbarList提供了AddTabDeleteTab函數,用於向工作列中添加刪除視窗項。

第一種方法就是使用ITaskbarList介面,在程式啟動時將視窗項從工作列中刪除。

代碼如下: 

 1  1 ITaskbarList* pTaskbarList; 2  2 hr = CoCreateInstance( CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER,  3  3     IID_ITaskbarList, (void**)&pTaskbarList ); 4  4  5  5 if(SUCCEEDED(hr)) 6  6 { 7  7     pTaskbarList->HrInit(); 8  8     if(bShow) 9  9         pTaskbarList->AddTab(hWnd);10 10     else11 11         pTaskbarList->DeleteTab(hWnd);12 12 13 13     pTaskbarList->Release();14 14 }

從另一個角度考慮,windows視窗是否有類似的屬性,用於指定視窗樣式,不在工作列中顯示呢?

下面可以看看Extended Window Styles的資料,其中有這樣的擴充屬性:WS_EX_TOOLWINDOW。指定該屬性工作表示視窗將會作為浮動工具列使用,其視窗不會再工作列中顯示,並且有特殊的顯示處理邏輯,這也恰好符合需要。

那麼使用這種方式就需要調用CreateWindowEx函數。

 另外,如果你希望視窗完全不可見,可以在建立視窗的時候指定視窗屬性為不可見,這樣就是直接建立一個後台進程用於處理其他事務。但不推薦這麼處理,畢竟視窗完全不可見的話,可以直接CUI編程,沒必要使用GUI。

 

本文Tocy

著作權,請勿用於商業用途,轉載請註明原文地址。本人著作權所有,並保留一切權利。

隱藏windows工作列中的視窗顯示

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.