MFC动态创建按钮,并在按钮上实现位图的切换显示】

动态创建按钮,并在按钮中添加位图,通过单击按钮显示不同的位图,可设置为显示按钮按下和弹起两种状态。只要判断a值从而输入不同的响应代码。

1、在头文件中添加:

CButton *pBtn;

2、在初始化函数中添加:

pBtn = new CButton();

pBtn->Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_BITMAP, CRect(0,0,100,40), this, IDC_BUTTON);//按钮显示名、属性、ID号

pBtn->MoveWindow(CRect(400,100,500,140));//位置和按钮大小

pBtn->SetBitmap((HBITMAP)LoadImage(AfxGetInstanceHandle(), "1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION));//插入位图的,位图的位置要放在程序中

此时运行程序就可显示按钮,并且如果有位图,位图会显示在按钮上面;

3、在Resource.h中

添加ID号:比如#define IDC_BUTTON 1002

4、在头文件下方

protected:

//{{AFX_MSG(CMy3View)

// NOTE - the ClassWizard will add and remove member functions here.

//    DO NOT EDIT what you see in these blocks of generated code !

//}}AFX_MSG

afx_msg void OnButton();//这句函数声明

DECLARE_MESSAGE_MAP()

5、在

BEGIN_MESSAGE_MAP(CMy3View, CFormView)

//{{AFX_MSG_MAP(CMy3View)

// NOTE - the ClassWizard will add and remove mapping macros here.

//    DO NOT EDIT what you see in these blocks of generated code!

//}}AFX_MSG_MAP

// Standard printing commands

ON_BN_CLICKED(IDC_BUTTON, OnButton)//在外面(ID号,响应函数名)

END_MESSAGE_MAP()

6、手动添加响应函数

void CMyView::OnButton()

{

MessageBox("响应函数添加测试成功");

}

7、在头文件中添加一个整形的成员变量

int a;

8、构造函数中初始化

a = 0;

9、在按钮响应函数中添加

void CMyView::OnButton()

{

if(a%2 == 0)

{

pBtn->SetBitmap((HBITMAP)LoadImage(AfxGetInstanceHandle(), "2.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION));

}

else if(a%2 == 1)

{

pBtn->SetBitmap((HBITMAP)LoadImage(AfxGetInstanceHandle(), "1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION));

}

a++;

}

如果单纯的实现按钮的位图切换的话,建议使用CBitmapButton类

http://blog.csdn.net/bigtree_mfc/article/details/40625523

时间: 2024-08-26 13:32:52

MFC动态创建按钮,并在按钮上实现位图的切换显示】的相关文章

MFC动态创建控件及添加消息响应

MFC动态创建控件及添加消息响应 分类: 控件技术2013-01-24 14:12 7020人阅读 评论(0) 收藏 举报 转载地址:http://blog.csdn.net/luy3728000/article/details/8193918 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放

【转载】MFC动态创建控件及其消息响应函数

原文:http://blog.sina.com.cn/s/blog_4a08244901014ok1.html 这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)http://topic.csdn.net/u/20101204/13/5f1b1e70-2f1c-4205-ba10-41616d16f07e.html (2)http://www.cppblog.com/deercoder/articles/107132.html 这两篇帖子是比较经典的,能够回答

jquery动态创建元素 div元素随垂直滚动条位置变化置顶显示

刚打开页面效果 拖动滑动条之后效果 页面代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title&g

MFC动态创建控件(按钮)及添加消息响应

动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示. 静态控件不需要调用Create()函数来创建. 而创建动态控件有很大不同,以下以按钮为例,看一下动态控件的创建过程: 1.建立控件I

MFC 动态创建按钮

首先在对话框(模式对话框,无模式对话框)中添加一个ADD按钮,通过点击按钮产生的通告消息调用::OnBtnAdd()方法.此方法会在对话框的左上角创建一个按钮. 当然首先要在和次对话框相关联的类中添加一个按钮(CButton)的对象m_btn. 示例1:添加一个BOOL类型变量(m_bIsCreate)用来表示此按钮是否已经创建,初始化为FALSE. 1 void CTestDlg::OnBtnAdd()  2 { 3     // TODO: Add your control notifica

MFC 动态创建Picture Control

1.首先定义一个静态的CStatic 的指针 CStatic *pPictureControl = NULL; pPictureControl->Create(_T( "" ), WS_CHILD | WS_VISIBLE | SS_BITMAP, CRect (20,10,80,40), this, 12345); 这里在创建的时候一定不能少了"SS_BITMAP" 这个风格不热没有办法显示图片 为了测试我们是否创建成功我们显示一张图片 CImage img

MFC动态按钮的创建及其消息响应(自定义消息)

动态按钮(多个)的创建: 1.在类中声明并定义按钮控件的ID #define IDC_D_BTN 10000 2.在类的OnInitDialog()函数中动态创建按钮(建立按钮对象时最好建立对象的指针) 3.手动释放对象指针 下面是动态生成多个按钮的例子: CButton* btn = new CButton[5]; DWORD dwStyle = WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON; for(int i = 0; i < 5; i++) { btn[i]

MFC动态按钮的创建及其消息响应 和 自定义消息

原文链接: http://www.cnblogs.com/gaohongchen01/p/4046525.html 动态按钮(多个)的创建: 1.在类中声明并定义按钮控件的ID #define IDC_D_BTN 10000 2.在类的OnInitDialog()函数中动态创建按钮(建立按钮对象时最好建立对象的指针) 3.手动释放对象指针 下面是动态生成多个按钮的例子: CButton* btn = new CButton[5]; DWORD dwStyle = WS_CHILD | WS_VI

MFC之动态创建按钮

打开VS 创建MFC基于对话框的工程,在对话框初始化方法中动态创建一个按钮实例: 1> CButton *pMyButton = new CButton(); 2>pMyButton->Create(_T("ButtonName"),WS_CHILD|WS_VIVIBLE_BS_PUSHBUTTON,CRect(10,20,80,80),this,IDC_MYBUTTON); 编译时会提示IDC_MYBUTTON未定义,此时打开资源文件找到stringTable,在里