MFC 自畫介面的總結

2021-06-16 20:15:30 字數 1241 閱讀 8119

// 通過這個方式,在mainframe 去掉menubar,註冊類,去掉背景畫刷,避免重複重新整理,

去掉視窗的其他的屬性,只是設定成乙個白板沒有邊框的視窗

int cmainframe::oncreate(lpcreatestruct lpcreatestruct)

繪製非客戶區的邊框, cwindowdc 可以繪製客戶區和非客戶區,

getwindowrect(rectwindow); 獲取視窗相對整個螢幕的rect

screentoclient(rectwindow); 轉化後,rectwindow 相對客客戶區的位置,這個時候 rectwindow.left ==- border.width  ,rectwindow.top=-border.height

rectclient.offsetrect(-rectwindow.left, -rectwindow.top); //  rectclient 獲取的是以客戶區(0,0) 為起點的寬和高的區域,現在調成window 區域的左上角(0,0)為座標的位置。

dc.excludecliprect(rectclient);// 排除這個區域,免得重新整理。

rectwindow.offsetrect(-rectwindow.left, -rectwindow.top);// 調整成 window 視窗區域的座標系的位置

void cmainframe::onncpaint()

{// todo: 在此處新增訊息處理程式**

// 不為繪圖訊息呼叫 cframewnd::onncpaint()

cwindowdc dc(this);

crect rectclient;

getclientrect(rectclient);

crect rectwindow;

getwindowrect(rectwindow);

screentoclient(rectwindow);

rectclient.offsetrect(-rectwindow.left, -rectwindow.top);

dc.excludecliprect(rectclient);

// 繪製非使用者區的邊界

rectwindow.offsetrect(-rectwindow.left, -rectwindow.top);

// drawborders(&dc, rectwindow);

cbrush b(rgb(230,29,0));

dc.fillrect(&rectwindow,&b);

介面的總結

1.類的分類 普通類 抽象類 介面 2.介面的定義的幾個關鍵字 inte ce implements 介面的格式 public inte ce 檔名 3.介面的特點 介面中的方法都是抽象方法 就是沒有方法提的方法 介面的作用被繼承 介面中的方法必須為共有的 介面中的屬性必須為常量 4.介面的繼承特點...

製作帶MFC介面的MFC DLL

把mfc介面封裝到動態庫中。一 工程建立步驟 1.建立mfc dll工程,選擇 在共享 dll 中使用 mfc 2.執行時庫選擇 c c 生成 執行庫 多執行緒除錯 dll mdd 二 定義匯出介面基類 定義匯出介面介面類,待匯出介面需要繼承該介面類,並實現該介面定義的虛函式。如下 class ih...

mfc 自繪 學習小總結

mfc的標準控制項比較醜,所以需要自繪 1 建立mfc控制項的時候要加入ws owner 風格,然後過載標準控制項的虛函式 bs ownerdraw 2 onpaint 方法 即 wm paint訊息很重要 動態加入資源,cimage物件 然後呼叫 draw hdc控制代碼,crect 繪製上去,利...