Windows图形界面(GUI)-MFC-C/C++ - CStatic

目录

CStatic

基本概念

成员函数

示例代码


CStatic

基本概念
  • 图像类型:图片控件可以显示多种类型的图像,包括位图(BMP)、图标(ICO)、元文件(WMF)等。

  • 样式设置:通过设置控件的样式,可以定义图片控件的行为和外观,例如是否居中显示图像。

  • 资源绑定:图片控件可以绑定到资源中的图像,或者动态加载图像文件。

成员函数
  • Create:创建图片控件并将其附加到 CStatic 对象。

  • SetBitmap:设置图片控件显示的位图。

  • SetIcon:设置图片控件显示的图标。

  • SetCursor:设置图片控件显示的光标图像。

  • SetEnhMetaFile:设置图片控件显示的增强型元文件。

  • GetBitmap:获取图片控件当前显示的位图句柄。

  • GetIcon:获取图片控件当前显示的图标句柄。

  • GetCursor:获取图片控件当前显示的光标句柄。

  • GetEnhMetaFile:获取图片控件当前显示的增强型元文件句柄。

示例代码
cpp 复制代码
void CMainDlg::OnBnClickedButton24()
{
	// 位图对象
	CBitmap bitmap;

	// 加载资源
	bitmap.LoadBitmapW(IDB_BITMAP3);

	// 控件对象
	CStatic* pStaticPic = (CStatic*)GetDlgItem(IDC_STATIC_PIC);

	// 修改风格
	pStaticPic->ModifyStyle(SS_ENHMETAFILE, SS_BITMAP | SS_CENTERIMAGE);

	// 设置位图
	pStaticPic->SetBitmap(bitmap);
	
	// 设备对象
	CDC* pDC = pStaticPic->GetDC();
	CDC pCom;
	pCom.CreateCompatibleDC(pDC);

	// 图像资源
	pCom.SelectObject(&bitmap);

	// 控件数据
	CRect rect;
	pStaticPic->GetClientRect(rect);

	// 图像数据
	BITMAP bitmapInfo;
	bitmap.GetBitmap(&bitmapInfo);

	// 提升质量
	pDC->SetStretchBltMode(COLORONCOLOR);

	// 动态调整
	pDC->StretchBlt(0, 0, rect.Width(), rect.Height(), &pCom, 0, 0, bitmapInfo.bmWidth, bitmapInfo.bmHeight, SRCCOPY);

	// 释放对象
	ReleaseDC(pDC);
}
相关推荐
sulikey19 小时前
深入讲解:什么是 RAII(资源获取即初始化)——原理、实现、面试常考点与实战示例
c++·面试·智能指针·raii·shared_ptr·auto_ptr·资源获取即初始化
q***d17319 小时前
Rust在网络中的协议栈
开发语言·网络·rust
艾莉丝努力练剑19 小时前
【Git:多人协作】Git多人协作实战:从同分支到多分支工作流
服务器·c++·人工智能·git·gitee·centos·项目管理
星释19 小时前
Rust 练习册 88:OCR Numbers与光学字符识别
开发语言·后端·rust
一生要强的ymy19 小时前
Polar PHP是世界上最好的语言(困难)
开发语言·php
我命由我1234520 小时前
Java NIO 编程 - NIO Echo Server、NIO Client(NIO 异步客户端、NIO Selector 异步客户端)
java·开发语言·网络·java-ee·intellij-idea·intellij idea·nio
前端炒粉21 小时前
35.LRU 缓存
开发语言·javascript·数据结构·算法·缓存·js
星释1 天前
Rust 练习册 75:ETL与数据转换
开发语言·rust·etl
happyjoey2171 天前
使用Qt自带的Maintenance Tool将Qt6.9升级为QT6.10
开发语言·qt
p***h6431 天前
JavaScript在Node.js中的异步编程
开发语言·javascript·node.js