【VC编程技巧】控件?4.1位图Button

4.1位图Button

给按钮增加位图,或改变按钮字体,可以让按钮达到跟炫的效果;如何给按钮增加位图,和改变按钮上文字的字体?请看下面示例!

1>创建对话框程序,建立如下对话框;

图1

资源ID说明:

左边按钮ID:IDC_BUTTON1

右边按钮ID:IDCANCEL

2>设置button属性,设置选项如下图箭头处;

图2

3>添加位图到工程,如下图箭头处;

图3

4>给左边按钮添加控件变量(利用类向导);

CBitmapButton m_bitmapButton;

※如果类向导中没有CBitmapButton类型,可以预设为CButton后,手动改为CBitmapButton。

5>在对话框程序初始化函数中,给左边按钮设置位图,给右边按钮设置字体;

       // TODO: 在此添加额外的初始化代码
	m_bitmapButton.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2);//载入按钮位图资源

	LOGFONT lf;
	memset(&lf, 0, sizeof(LOGFONT));              // 初始化
	lf.lfHeight = 20;                             // 字体高度 (单位:px)
	lf.lfWidth = 13;                              //字体宽度
	lf.lfItalic = TRUE;                           //斜体
	lf.lfEscapement = -50;                        //采用斜体
	_tcsncpy_s(lf.lfFaceName, LF_FACESIZE,
		_T("Arial"), 7);                          // request a face name "Arial"
	VERIFY(m_fontButton.CreateFontIndirect(&lf)); // 创建新字体
	GetDlgItem(IDCANCEL)->SetFont(&m_fontButton); //字体应用与取消按钮

	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE</span>

6>最终效果图

图4

P.S下载工程源码

时间: 2024-08-10 21:29:32

【VC编程技巧】控件?4.1位图Button的相关文章

【VC编程技巧】窗体?3.5对单文档或者多文档程序制作启动画面

(一)概要: 文章描述了怎样通过Visual C++ 2012或者Visual C++ .NET,为单文档或者多文档程序制作启动画面.在Microsoft Visual Studio 6.0中对于单文档程序(SDI)我们可以很方便利用微软提供的组件Visual C++ Component (Splash Screen).因为在Microsoft Visual Studio 6.0以后的版本或者Visual C++ .NET没有提供这个组件,我们可以通过自定义对话框来实现Splash Screen

【VC编程技巧】窗体?3.7托盘程序介绍(模拟QQ消息)

所谓的托盘程序就是运行时在系统托盘区(就是桌面右下角显示时间的区域)出现一个小图标的程序.代表它运行的图标称作托盘图标.我们可以通过使用小图标来控制应用程序的状态. (一)NOTIFYICONDATA Structure typedef struct _NOTIFYICONDATA { DWORDcbSize;//结构体大小 HWNDhWnd;//接受icon消息的窗口句柄 UINT uID;//icon图标的资源Id UINTuFlags;//标志一些成员是否有效 UINTuCallbackM

【VC编程技巧】窗体?3.4利用bitmap改变对话框的背景。

效果图: 代码: 1.在对话框初始化函数OnInitDialog中加载bitmap,然后创建新的画刷. // CBitmapDemoDlg メッセージ ハンドラー BOOL CBitmapDemoDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // "バージョン情報..." メニューをシステム メニューに追加します. // IDM_ABOUTBOX は.システム コマンドの範囲内になければなりません. ASSERT((IDM_ABOUT

VC/MFC ListCtrl 控件功能使用汇总(转)

以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtrl类 SDK:以 "ListView_"开头的一些宏.如 ListView_InsertColumn -------------------------------------------------------------------------------- 1. CListCtrl 风格      LVS_ICON: 为每个item显示大图标      LVS_SMALLIC

VC++编写ActiveX控件

ActiveX这门技术是通过生成“*.ocx”文件来实现的.先来了解下OCX文件,在百度百科上面对OCX是这样解释的:“.ocx是ocx控件的扩展名,OCX 是对象类别扩充组件.如果你用过Visual Basic或者Delphi一类的可视化编程工具,那么对控件这个概念一定不会陌生,就是那些工具条上的小按钮,如 EditBox,Grid,ImageBox,Timer等等.每个控件都有自己的事件.方法和属性.使用了控件的编程非常容易.首先,在程序的设计阶段可以设置一些属性,如大小,位置,标题(cap

VC++使用ActiveX控件连接和操作数据库

VS2008运用ActiveX控件连接和操作数据库关闭时一直有个内存释放的错误,好像使用VC6.0会多生成2个文件,就不会有问题. VC++使用ActiveX控件连接和操作数据库的方法分两种: 1.通过属性窗口连接数据库2.通过代码连接数据库 1.通过属性窗口连接数据库基本步骤:(1)创建一个基于对话框的应用程序ActiveXDB; (2)添加CAdodc控件:对话框上右键单击,选择Insert ActiveX control菜单项,弹出的对话框中选择Microsoft ADO Data Con

VC++ 使用WebBrowser控件中html文件以资源形式加载

1 . . . . 2 3 //加载资源文件中的HTML,IDR_HTML1就是HTML文件在资源文件中的ID 4 wchar_t self_path[MAX_PATH] = { 0 }; 5 GetModuleFileName(NULL, self_path, MAX_PATH); 6 CString res_url; 7 res_url.Format(L"res://%s/%d", self_path, IDR_HTML1); 8 m_webbrowser.Navigate(res

【VC编程技巧】窗体?3.9静态窗口分割 (固定分割线)

上一章节说明了如何静态的分割窗口,分割后窗口的分割线是可以拖动的,有的时候我们需要固定分割线,那么如何实现固定分割呢? 我们需要构造出固定分割窗口类(CFixedSplitterWnd),来实现我们对窗口的固定分割,以上一章例来说明. 1.新创建MFC类,从CSplitterWnd继承,并重载WM_LBUTTONDOWN ,WM_MOUSEMOVE 和 WM_SETCURSOR消息响应函数. 2.新构造的CFixedSplitterWnd使用方法和CSplitterWnd一样. 通过MFC类向导

vc 在edit控件中动态插入数据滚动显示

内存从网上论坛摘抄整理 思路:给控件设置多行属性,设置垂直滚动条,Auto Vscroll设置为true,放入文本后把插入点设置到末尾 pEdit->LineScroll(pEdit->GetLineCount()); 滚动条滚动到最下端 int len  = pEdit->GetWindowTextLength(); pEdit->SetSel(len,-1,true); //定位光标到内容末尾pEdit->ReplaceSel("12121212");