MFC改变背景色(3)

时间:2025-02-24

void CTestDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else

{

//CDialog::OnPaint();

//这段装载背景图

CPaintDC dc(this); //对话框的dc//CPaintDC是从CDC派生出来的。在构造时自动调用CWnd::BeginPaint,析构时调用CWnd::EndPaint。通常CPaintDC用来响应WM_PAINT消息。一般应用在OnPaint函数 CDC dcMem;

dcMem.CreateCompatibleDC(&dc); //创建与对话框dc兼容的内存dc

CRect rect;

GetClientRect(&rect);//该函数获取窗口客户区的坐标。

BITMAP bitMap;

m_bmpBackground.GetBitmap(&bitMap);//好像是设置背景图

CBitmap *pbmpOld=dcMem.SelectObject(&m_bmpBackground); //将背景位图选入内存dc中

dc.SetStretchBltMode(HALFTONE);//这句保证放缩后不失真

dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY); //将内存dc中的位图拉伸显示在对话框的dc中

//dc.BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);

}

}

第一步,定义一个CBitmap对象CBitmap m_bmpBackground;

第二步,用m_bmpBackground.LoadBitmap(IDB_BITMAP1);将资源文件中的图片载入;

第三步,

MFC改变背景色(3).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219