<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 10.3 使用wxIcon編程 一個wxIcon代表一個小的位圖,它總有一個透明遮罩,它的用途包括: * 設置frame窗口或者對話框的圖標 * 通過wxImageList類給wxTreeCtrl, wxListCtrl或者wxNotebook提供圖標 (更多信息請參考最后一章) * 使用wxDC::DrawIcon函數在設備上下文中繪制一個圖標 下表列出了圖標類的主要成員函數 | wxIcon | 圖標類可以通過指定另外一個圖標類的方式,指定XPM數據(char**)的方式, 原始數據(char[])的方式,或者文件名及文件類型的方式創建. | |:--- |:--- | | CopyFromBitmap | 從wxBitmap類創建一個圖標. | | GetWidth, GetHeight | 返回圖標的大小. | | Getdepth | 返回圖標的顏色深度. | | LoadFile | 從文件加載圖標. | | Ok | 在圖標數據已經具備的時候返回True. | 創建一個wxIcon wxIcon可以使用XPM數據創建,或者從一個wxBitmap對象中創建,或者從文件(比如一個Xpm文件)中讀取.wxWidgets也提供了類似于前一小節提到的wxBITMAP類似的宏,用來從一個平臺相關的資源中獲取圖標. 在windows平臺上,LoadFile以及同等性質的操作可以使用的文件類型包括BMP圖片和ICO文件,如果你要從其它圖片格式中創建圖標,可以先將其讀入一個wxBitmap對象中,然后再將其轉換為一個圖標. 而在Mac OSX和 Unix/Linux的GTK+版本中,wxIcon可以識別的圖片類型和wxBitmap可以識別的圖片類型是一樣的. 下面代碼演示了創建一個wxIcon對象的幾種方法: ``` // 方法1: 從XPM數據創建 #include "icon1.xpm" wxIcon icon1(icon1_xpm); // 方法2: 從一個ICO資源中創建(Window and OS/2 only) wxIcon icon2(wxT("icon2")); // 方法3: 從一個圖片文件中 (Windows and OS/2 only) // 如果你的圖片包含多個圖標你可以指定單個圖標的寬度 wxIcon icon3(wxT("icon3.ico"), wxBITMAP_TYPE_ICO, 16, 16); // 方法4: 從位圖創建 wxIcon icon4; wxBitmap bitmap(wxT("icon4.png"), wxBITMAP_TYPE_PNG); icon4.CopyFromBitmap(bitmap); ``` 使用wxIcon 下面的代碼演示了wxIcon的三種使用方法:設置窗口圖標,增加到一個圖片列表或者繪制在某個設備上下文上 ``` #include "myicon.xpm" wxIcon icon(myicon_xpm); // 1: 設置窗口圖標 frame->SetIcon(icon); // 2: 增加到wxImageList wxImageList* imageList = new wxImageList(16, 16); imageList->Add(icon); // 3: 在(10, 10)的位置繪制 wxClientDC dc(window); dc.DrawIcon(icon, 10, 10); ``` 將某個圖標綁定到應用程序 將某個圖標綁定到應用程序,以便系統可以顯示這個圖標在合適的位置使得用戶可以通過點擊圖標的方式打開應用程序,這個工作wxWidgets是做不到的.這是極少的你需要在不同的平臺使用不同的技術的領域中的一個. 在windows平臺上,你需要在makefile中增加一個資源文件(擴展名是.rc),并且在這個資源文件中指定一個圖標區域,如下所示: ``` aardvarkpro ICON aardvarkpro.ico #include "wx/msw/wx.rc" ``` 在這里, aardvarkpro.ico就是這個和應用程序綁定的圖標的名稱,它可以有多種分辨率和顏色深度(典型的大小包括48x48,32x32和 16x16).當windows的資源管理器需要顯示某個圖標的時候,它將使用子母順序排在第一個的那個圖標,因此你最好給確定要作為應用程序圖標的那個圖標的名稱前面加幾個a子母以便按照子母順序它排在前面,否則你的應用程序可能綁定的是你不期望的圖標. 在Mac系統上,你需要準備一個應用程序包,其中包含一些ICNS文件.參考第20章"讓你的程序更完美",來獲得關于程序包更多的信息,其中的主要文件Info.plist文件看上去應該象下面的額樣子: ``` <key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeExtensions</key> <array> <string>pjd</string> </array> <key>CFBundleTypeIconFile</key> <string>dialogblocks-doc.icns</string> <key>CFBundleTypeName</key> <string>pjdfile</string> <key>CFBundleTypeRole</key> <string>Editor</string> </dict> </array> <key>CFBundleIconFile</key> <string>dialogblocks-app.icns</string> ... ``` 應用程序圖標和應用程序相關的文檔類型圖標是由CFBundleIconFile和CFBundleTypeIconFile屬性指定的.你可以直接用Apple提供圖標編輯器編輯ICNS文件,不過如果你希望所有的平臺使用同樣的圖標,你最好現用PNG圖片創建各種大小的圖標,然后再將它粘貼到各個平臺上的圖標編輯器中,要確保PNG使用的透明遮罩顏色和各個工具使用的透明顏色相一致. 而在linux平臺上,Gnome桌面系統和KDE桌面系統則各自擁有自己的圖標提供體系,我們將在第20章進行簡要的描述.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看