去除邊框
1.把視窗邊框改成無邊框:

但只這樣做會導致無法拖動視窗,
2.在類向導中添加這個訊息:OnHcHitTest

3.修改這個訊息處理函式的回傳值為:HTCAPTION

添加背景圖片
1.準備一張 bmp 格式的圖片(其他格式我沒有實驗,可能會有問題),在專案中添加資源,選擇 BitMap ,匯入:


2.在 OnPaint() 函式中添加如下代碼:
// 上面還有一部分代碼,是 vs 自動生成的
else
{
//CDialogEx::OnPaint(); // 這是原本的,注釋掉
/*
從這里開始是我們自己的代碼 ---------------
*/
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect); // 獲取對話框長寬
CDC dcBmp; // 定義并創建一個記憶體設備環境
dcBmp.CreateCompatibleDC(&dc); // 創建兼容性DC
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1); // 載入資源中圖片
BITMAP m_bitmap; // 圖片變數
bmpBackground.GetBitmap(&m_bitmap); // 將圖片載入位圖中
//將位圖選入臨時記憶體設備環境
CBitmap* pbmpOld = dcBmp.SelectObject(&bmpBackground);
//呼叫函式顯示圖片StretchBlt顯示形狀可變
dc.SetStretchBltMode(COLORONCOLOR); // 防止 bmp 圖片壓縮后失真
dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &dcBmp, 0, 0, m_bitmap.bmWidth, m_bitmap.bmHeight, SRCCOPY);
}
注意:背景圖片在視窗拉伸時會失真,但配合無邊框使用時不需要在意,因為本身無邊框表單不支持拉伸視窗,
還有一點,這樣做需要手動添加關閉按鈕,但 bmp 格式檔案圖片不透明所以就很丑,但使用 png 格式的圖片要使用 GDI+ 庫,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/278171.html
標籤:其他
上一篇:組播基礎
