1. 程式人生 > >VS2013MFC單文件工程學習筆記八

VS2013MFC單文件工程學習筆記八

方法一:

1、宣告成員變數CBrush m_brush;
2、在InitDialog中新增程式碼:

CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);   //IDB_BITMAP1是圖片資源ID
m_brush.CreatePatternBrush(&bmp);
3、過載對話方塊的OnCtlColor,改最後的返回值:

1
return (HBRUSH)m_brush;
方法二:

把下面這段程式碼加進OnPaint()裡就行了

CPaintDC dc(this);
 CBitmap   bitmap;
 bitmap.LoadBitmap(IDB_BITMAP1);    //這個IDB_BITMAP1要自己新增
 CBrush   brush;
 brush.CreatePatternBrush(&bitmap);
 CBrush*   pOldBrush   =   dc.SelectObject(&brush);
 dc.Rectangle(0,0,200,200);   // 這些引數可以調整圖片新增位置和大小
 dc.SelectObject(pOldBrush);
方法三:使用StretchBlt()函式,具有影象自適應窗體功能

CPaintDC dc(this);
 CBitmap   bitmap;
 bitmap.LoadBitmap(IDB_BITMAP1);    //這個IDB_BITMAP1要自己新增
 CBrush   brush;
 brush.CreatePatternBrush(&bitmap);
 CBrush*   pOldBrush   =   dc.SelectObject(&brush);
 dc.Rectangle(0,0,200,200);   // 這些引數可以調整圖片新增位置和大小
 dc.SelectObject(pOldBrush);
有三種方法,我用第二種方法做例子,

筆記開始:

首先在  MFAppView.h 標頭檔案中  找到類class CMFAppView : public CView{}

在這個類中宣告一個訊息表示這個訊息我要用,這個訊息屬於我

public:
	

	afx_msg void OnPaint();
把上面的程式碼複製到這個class CMFAppView類中

宣告完畢然後在原始檔中實現他

在MFAppView.cpp原始檔中建立一個OnPaint()訊息回撥       名字叫做 void CMFAppView::OnPaint()   類名::OnPaint()

void CMFAppView::OnPaint()
{
	CRect rc;
	GetWindowRect(&rc);
	rc.Width(); //獲得寬度
		rc.Height(); //獲得高度



	CPaintDC dc(this);
	CBitmap   bitmap;
	bitmap.LoadBitmap(IDB_圖片ID這個要改自己的圖片ID);   
	CBrush   brush;
	brush.CreatePatternBrush(&bitmap);
	CBrush*   pOldBrush = dc.SelectObject(&brush);
	dc.Rectangle(0, 0, rc.Width(), rc.Height());   // 這些引數可以調整圖片新增位置和大小
	dc.SelectObject(pOldBrush);
}

懶得寫的直接把上面的程式碼複製進去

這樣程式碼就寫完了,但是資源還沒有匯入呢,我們匯入圖片資源

點選   資源檢視 -  對著專案 (右鍵) -  新增(出現一個選單) -  資源


匯入(出現對話方塊) -   選擇一一張圖片 -  開啟 

這樣圖片就匯入到程式資源表了, 找到這個圖片記下它的ID號 我的圖片ID是IDB_BITMAP1

bitmap.LoadBitmap(IDB_圖片ID這個要改自己的圖片ID);   在原始碼這句程式碼中填寫你的圖片ID號 我的圖片ID是IDB_BITMAP1

寫完執行看看,我的效果圖



相關推薦

VS2013MFC工程學習筆記

方法一: 1、宣告成員變數CBrush m_brush; 2、在InitDialog中新增程式碼: CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP1是圖片資源ID m_brush.CreatePatte

python操作學習筆記

python-文件操作學習筆記#文件操作:讀:f = open("/Users/zhouhaijun/python/01.py","r")x = f.read()print x寫:f = open("/Users/zhouhaijun/python/file_01.py","wb")f.write("ok")

Linux硬盤分區與系統---學習筆記

Linux硬盤分區與文件系統一·linux的硬盤和分區 (1)硬盤:IDE接口的硬盤,表示為“hdX”形式表示;而對於SCSI接口的硬盤,表示為“sdX”。其中“X”可以為a、b、c、d等字母序號。例如:系統中的第一塊IDE接口的硬盤,表示為“hda” 第二塊SCSI硬盤表示為“sdb” (2)分區:表示分區

第三章管理學習筆記

學習筆記筆記整理起始時間:2018年3月31日16:16:55 本章內容文件系統結構元素創建和查看文佳復制、轉移和刪除文件使用Nautilus來管理文件軟和硬鏈接 文件系統文件和目錄被組織成一個單根倒置樹結構文件系統從根木蘭路下開始,用"/"表示根文件系統:rootfs,root file

python 操作 學習筆記

位置 enc pri 小文件 author app python odi read #_*_ coding:utf-8 _*_# author choco#f = open("J:\Python\py\contact.txt",encoding="utf-8").read(

遞歸刪除學習筆記

分析 dir 結束 pre sub tdi 刪除文件 如果 獲取 /** * 需求:2,從鍵盤接收一個文件夾路徑,刪除該文件夾 * * 刪除該文件夾 * 分析: * 1,獲取該文件夾下的所有的文件和文件夾 * 2

工程學習筆記——軟工程基本原理

基本 建議 軟件質量 數據 工具 進度 劃分 控制 項目 美國著名的軟件工程專家B.W.Boehm於1983年提出了軟件工程的7條基本原理: 用分階段的生命周期計劃嚴格管理 這條基本原理意味著:應該把軟件生命周期劃分成若幹個階段,並相應地制定出切實可行的計劃,然後嚴格按

git基礎:《移除及移動學習筆記

delet 磁盤 ... 之前 一個 工作 清單 分開 shell 移除文件 要從 Git 中移除某個文件,就必須要從已跟蹤文件清單中移除(確切地說,是從暫存區域移除),然後提交。 可以用 git rm 命令完成此項工作,並連帶從工作目錄中刪除指定的文件,這樣以後就不會出現

vue工程,上下全屏翻頁小案例

整體 eight 重要 sset var rtti 執行 src star 轉載請標明出處,以下純手打,不容易~~~ 先來看下效果圖吧,百度發現一款錄屏制作Gif的小工具,叫ScreentoGif ,終於可以上自己的動態效果圖了 接下來看下整個vue文件的完整代碼: &

工程讀書筆記)——需求分析

技術分享 導師 機制 tom 完全 工程 技術 ood image 私以為軟件工程的起點便是需求分析。準確全面地找到這些需求主要有以下幾個步驟 一、 獲取和引導需求 作為本科生,身邊共性的需求不難獲取,實驗室信息,導師信息,實

vue小項目總結與筆記【二】——vue的模板和路由

home out 展現 pat default rip 項目 routes 例如 vue的單文件組件的基本構成是這樣的: <template> <div> 結構: (註意:template裏只能有一層div

Hibernate表映射學習筆記之一——hibernalnate開發環境配置

pass ransac over 構造方法 參數 會話 signed rate ets   1、什麽是ORM?   Object/Relationship Mapping:對象/關系映射   2、寫SQL語句不好之處:   (1)不同數據庫使用的SQL語法不同(PL/

上傳-筆記

ini ner 圖片文件 3-9 pos -i http href 本地文件 網站常見功能,例如:上傳頭像 LOW 上傳成功phpinfo.php可訪問執行 http://192.168.3.88/dvwa/hackable/uploads/phpinfo.php

Hibernate中配置學習

java itcast 描述 字段 dialect 2.3 map 評論 添加 首先我們看一下hibernate的主配置文件 1 <!DOCTYPE hibernate-configuration PUBLIC 2 "-//Hibernate/Hiber

工程學習進度表(第十六周)

代碼量 borde -s nbsp order 16px 學習 進行 軟件工程 所花時間(包括上課) 5小時 代碼量(行) 100行左右 博客量(篇) 2篇 了解到的知識點 1.學習了如何進行績效評估 2.對

jquery加載vue組

gif -h json enter bsp register replace align console /**註冊組件 */ function registerComponent(name){ dm[name] = {}; Vue

ext2系統學習(二)—— 目錄磁盤結構

echo free 文件格式 htm file 目錄結構 bitmap 點號 name 創建鏡像、mount等操作和上一篇一樣,測試目錄結構如下: 一些文件系統信息如下: Block size: 1024 Inodes per group: 1

Shell 腳本學習筆記:流程控制

等於 break 語句 until循環 ase 所有 span 數字 if 語句 一、 if else /// 如果else分支沒有語句執行,就不要寫這個else 1、if 語句 if condition then

Java基礎學習筆記 Java基礎語法之接口和多態

java cas 發現 過程 類類型 結果 覆寫 實例 new 接口 接口概念 接口是功能的集合,同樣可看做是一種數據類型,是比抽象類更為抽象的”類”。接口只描述所應該具備的方法,並沒有具體實現,具體的實現由接口的實現類(相當於接口的子類)來完成

python實現綠色軟的升級,包括升級和多升級

odi dev argv odin txt 註意 store isf out # coding:utf-8 import sys, os, time import zipfile import shutil def print_usage(): print ‘