<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                第十章 界面裝飾 第一節 列表項圖標設置 第二節 列表標頭圖標設置 第三節 列表項排序 第四節 窗口顏色控制 第五節 自繪按鈕 第六節 自繪組合控件 第七節 自繪列表控件 第八節 WM_DRAWITEM和WM_MEASUREITEM消息 第九節 相關類庫介紹表 (CImageList類、CBitmapButton類和CComboBoxEx類等) * * * * * ## 提綱一 一、在MSDN的索引頁面鍵入“SetImageList”后回車,顯示有七個類支持該函數. a)對應的控件包括:列表控件、樹形控件和標簽控件等。 b)這些控件的特點是內部都包含多個控件項,因此SetImageList函數主要用于控件項的圖標設置。 二、使用圖像列表類設置列表控件項圖標的步驟如下: a)調用CImageList::Create函數建立圖像列表; b)調用CImageList::Add函數向圖像列表里加入多個圖標,之后SetImageList到具體控件中去; c)調用CListCtrl::InsertItem函數在列表控件內新插入列表項時,在第3個參數指定圖標索引; d)對于已經插入的列表項的圖標更改要調用CListCtrl::SetItem函數,通過LVITEM 結構體的iImage成員指定圖標。 三、使用圖像列表類設置列表控件的標頭圖標步驟如下: a)調用CImageList::Create函數建立圖像列表; b)調用CImageList::Add函數向圖像列表里加入多個圖標,之后SetImageList到具體控件中去; c)對于已經插入的列表標頭的圖標更改要調用CListCtrl::SetItem函數: 通過HDITEM結構體的mask設置HDI_IMAGE|HDI_FORMAT開關,iImage成員指定圖像列表內的圖標索引, frm子開關可以顯示和刪除圖標或文字。 四、CListCtrl::SetItem的多種功能使用:(反之GetItem函數也一樣能代替以下所有函數的反函數) a)通過LVITEM結構體的mask成員指定LVIF_TEXT,代替CListCtrl::SetItemText函數設置列表項文字; b)通過LVITEM結構體的mask成員指定LVIF_IMAGE,用于設置列表項的圖標; c)通過LVITEM結構體的mask成員指定LVIF_PARAM,代替CListCtrl::SetItemData函數設置列表項附帶數據; d)通過LVITEM結構體的mask成員指定LVIF_STATE,代替CListCtrl::SetItemState函數設置列表項附帶數據; * * * * * ## 提綱二 一、CListCtrl::SetItem的多種功能使用:(反之GetItem函數也一樣能代替以下所有函數的反函數) a)通過LVITEM結構體的mask成員指定LVIF_TEXT,代替CListCtrl::SetItemText函數設置列表項文字; b)通過LVITEM結構體的mask成員指定LVIF_IMAGE,用于設置列表項的圖標; c)通過LVITEM結構體的mask成員指定LVIF_PARAM,代替CListCtrl::SetItemData函數設置列表項附帶數據; d)通過LVITEM結構體的mask成員指定LVIF_STATE,代替CListCtrl::SetItemState函數設置列表項附帶數據; 二、CListCtrl::SortItems及排序規則函數的詳細使用方法,可以參見MSDN中的函數說明。 a)回調函數必須是C格式全局函數或者靜態的類成員函數; b)這類函數中都沒有this指針,因此也就不能在回調函數中調用類的成員變量和成員函數; c)SortItems函數的第二個參數,是用于傳遞給回調函數的第三個參數的; d)可以參數傳遞方式將一個類對象的地址以32位變量的方式傳入到回調函數中, 這樣才能間接地訪問到類對象的成員。 三、父窗口和控件子窗口的顏色控制,主要有以下幾種方法: a)調用CWinApp:: SetDialogBkColor函數,設置對話框背景顏色和靜態文本顏色; b)WM_ERASEBKGND的消息映射函數顏色控制的對象,只包括父窗口自身的背景和文字顏色; c)WM_CTLCOLOR的消息映射函數顏色控制的對象,不但包括父窗口自身的背景和文字顏色, 而且還包括靜態文本控件、編輯控件以及組合控件等。 * * * * * ## 提綱二 一、自繪控件:顯示內容交給開發者來管理,其他鼠標和鍵盤操作仍由系統管理。 a)建立控件類的派生類; b)重寫DrawItem自繪虛函數; c)將一個對應類型控件的風格中加入OwnerDraw屬性; d)一定要用派生類為具有該屬性的控件定義關聯變量; e)(含有)多項控件自繪還可以重寫MeasureItem函數對每個控件項管理。 例如:組合控件包括三種自繪類型(Owner draw): No:不自繪,由系統提供列表文字的顯示 Fixed:每個列表項的高度是固定的 Variable:每項的高度不固定,由MeasureItem函數設定 二、WM_DRAWITEM消息: a)WM_DRAWITEM消息,一般用于在父窗口中建立消息映射函數; b)如果父窗口內有一個或多個具有自繪屬性的控件,對所有具有自繪屬性的的子窗口進行更新; (在WM_PAINT消息映射函數執行后,就立即執行WM_DRAWITEM的消息映射函數OnDrawItem) c)在消息映射函數OnDrawItem中,執行基類函數CWnd::OnDrawItem將回調路由, 進入每個自繪子窗口關聯的派生類的虛函數DrawItem中。 三、WM_MEASUREITEM消息: a)WM_MEASUREITEM消息也同樣一般在父窗口中建立消息映射函數; b)在一些具有自繪屬性的列表類控件添加列表項時,產生WM_MEASUREITEM消息回調。 c)在消息映射函數OnMeasureItem中,執行基類函數CWnd::OnMeasureItem將回調路由, 進入每個自繪子窗口關聯的派生類的虛函數MeasureItem中。 * * * * * ## 提綱三 一、WM_DRAWITEM消息: a)WM_DRAWITEM消息,一般用于在父窗口中建立消息映射函數; b)如果父窗口內有一個或多個具有自繪屬性的控件,對所有具有自繪屬性的的子窗口進行更新; (在WM_PAINT消息映射函數執行后,就立即執行WM_DRAWITEM的消息映射函數OnDrawItem) c)在消息映射函數OnDrawItem中,執行基類函數CWnd::OnDrawItem將回調路由, 進入每個自繪子窗口關聯的派生類的虛函數DrawItem中。 二、WM_MEASUREITEM消息: a)WM_MEASUREITEM消息也同樣一般在父窗口中建立消息映射函數; b)在一些具有自繪屬性的列表類控件添加列表項時,產生WM_MEASUREITEM消息回調。 c)在消息映射函數OnMeasureItem中,執行基類函數CWnd::OnMeasureItem將回調路由, 進入每個自繪子窗口關聯的派生類的虛函數MeasureItem中。 三、內存泄漏:在堆內動態開辟的空間(new),在使用完畢后未釋放(delete), 結果導致一直占據該內存單元。直到程序結束。MFC軟件工程在調試結束后會自動顯示內存泄漏的次數和位置。 (按F4快捷鍵遍歷)
                  <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>

                              哎呀哎呀视频在线观看