有关CBitmapButton的问题!急 我知道CBitmapButton怎么用,也实现了,但是当多个按钮都设置成CBitmapButton时,就会出现问题,其实应该是编译通过了,但是运行会出现错误。比如,开始是4个按钮Button1,Button2,Button3,Button4,运行正常,后来我又添加了几个按钮,就不行了。请那位大侠帮我分析一下到底是什么问题。在此先谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问题描述不太清晰,是你的BitmapButton显示不出来,是它不响应点击,还是其他?有没有相关代码? 具体是这样的:开始我是用四个按钮,采用下面的方式与控件联系起来,运行正常,图片可以显示,也可以点击,但是当我再加几个按钮时,编译和连接都没有问题,但运行就会出问题,说是exe文件运行中遇到问题,需要关闭.CBitmapButton m_btn1;CBitmapButton m_btn2;CBitmapButton m_btn3;CBitmapButton m_btn4;CBitmapButton m_btn5;CBitmapButton m_btn6;CBitmapButton m_btn7;CBitmapButton m_btn8;CBitmapButton m_btn9;DDX_Control(pDX,IDC_BUTTON1,m_btn1);DDX_Control(pDX,IDC_BUTTON2,m_btn2);DDX_Control(pDX,IDC_BUTTON3,m_btn3);DDX_Control(pDX,IDC_BUTTON4,m_btn4);DDX_Control(pDX,IDC_BUTTON5,m_btn5);DDX_Control(pDX,IDC_BUTTON6,m_btn6);DDX_Control(pDX,IDC_BUTTON7,m_btn7);DDX_Control(pDX,IDC_BUTTON8,m_btn8);DDX_Control(pDX,IDC_BUTTON9,m_btn9);请大侠帮我解释一下,本人将感激不尽. 在OnInitDialog函数中添加了m_btn1.AutoLoad(IDC_BUTTON1,this);这个吗?我今天也在做这个,我添加了好多个都没问题啊,每个按钮都得加这句话的.m_btn1.AutoLoad(IDC_BUTTON1,this);m_btn2.AutoLoad(IDC_BUTTON2,this);m_btn3.AutoLoad(IDC_BUTTON3,this);m_btn4.AutoLoad(IDC_BUTTON4,this);m_btn5.AutoLoad(IDC_BUTTON5,this);m_btn6.AutoLoad(IDC_BUTTON6,this);m_btn7.AutoLoad(IDC_BUTTON7,this);m_btn8.AutoLoad(IDC_BUTTON8,this);m_btn9.AutoLoad(IDC_BUTTON9,this);可能我比较罗嗦了,但我真心的希望能帮到你. 我甚至用过20个,且是数组形式的,都没问题。如下:资源编辑:给每个IDC_BUTTONi控件加Bitmap、Owner Draw、Notify属性定义: CBitmapButton m_BtmpBtn[20];相关实现:BEGIN_MESSAGE_MAP(CJ8FDcmpDlg, CDialog) //{{AFX_MSG_MAP(CJ8FDcmpDlg) ON_WM_PAINT() //}}AFX_MSG_MAPON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON1, IDC_BUTTON20, OnBtnClick)END_MESSAGE_MAP()CXXDlg::OnInitDialog()内加入 for (int i=0; i<20; i++)//位图按钮的装载 { m_BtmpBtn[i].AutoLoad(IDC_BUTTON1+i, this); m_BtmpBtn[i].SizeToContent(); }void CXXDlg::OnBtnClick()//位图按钮消息处理函数{ MSG *pMsg = (MSG *) GetCurrentMessage(); if (pMsg->message != WM_COMMAND) return; UINT idButton = (int) LOWORD(pMsg->wParam);//被点击按钮的ID}这样还不行,怀疑你的D版VC有点问题,重编译或重装试试如果 点管理帖子->每层楼给分->楼主帖子下输入密码,确认结贴 如何用C/C++语言 比较 某文件中 2个 png图片 是否完全相同的2张? VC经典书籍 使用Microsoft CryptoAPI怎样进行MD5加密? OpenGL图象显示 简单问题! 两个小问题:视图的重绘和编辑框控件字体的颜色 简单的菜鸟问题,帮助一下初学者 请问在vc中如何实现导出操作系统日志 日志读、备份的函数是什么? SetWindowText的问题 请教.msg文件怎么打开? win32项目中在一个类里如何获得主窗口的hwnd CrichEdit 字体背景色
开始我是用四个按钮,采用下面的方式与控件联系起来,运行正常,图片可以显示,也可以点击,但是当我再加几个按钮时,编译和连接都没有问题,但运行就会出问题,说是exe文件运行中遇到问题,需要关闭.
CBitmapButton m_btn1;
CBitmapButton m_btn2;
CBitmapButton m_btn3;
CBitmapButton m_btn4;
CBitmapButton m_btn5;
CBitmapButton m_btn6;
CBitmapButton m_btn7;
CBitmapButton m_btn8;
CBitmapButton m_btn9;
DDX_Control(pDX,IDC_BUTTON1,m_btn1);
DDX_Control(pDX,IDC_BUTTON2,m_btn2);
DDX_Control(pDX,IDC_BUTTON3,m_btn3);
DDX_Control(pDX,IDC_BUTTON4,m_btn4);
DDX_Control(pDX,IDC_BUTTON5,m_btn5);
DDX_Control(pDX,IDC_BUTTON6,m_btn6);
DDX_Control(pDX,IDC_BUTTON7,m_btn7);
DDX_Control(pDX,IDC_BUTTON8,m_btn8);
DDX_Control(pDX,IDC_BUTTON9,m_btn9);请大侠帮我解释一下,本人将感激不尽.
我今天也在做这个,我添加了好多个都没问题啊,每个按钮都得加这句话的.
m_btn1.AutoLoad(IDC_BUTTON1,this);
m_btn2.AutoLoad(IDC_BUTTON2,this);
m_btn3.AutoLoad(IDC_BUTTON3,this);
m_btn4.AutoLoad(IDC_BUTTON4,this);
m_btn5.AutoLoad(IDC_BUTTON5,this);
m_btn6.AutoLoad(IDC_BUTTON6,this);
m_btn7.AutoLoad(IDC_BUTTON7,this);
m_btn8.AutoLoad(IDC_BUTTON8,this);
m_btn9.AutoLoad(IDC_BUTTON9,this);可能我比较罗嗦了,但我真心的希望能帮到你.
相关实现:
BEGIN_MESSAGE_MAP(CJ8FDcmpDlg, CDialog)
//{{AFX_MSG_MAP(CJ8FDcmpDlg)
ON_WM_PAINT()
//}}AFX_MSG_MAP
ON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON1, IDC_BUTTON20, OnBtnClick)
END_MESSAGE_MAP()CXXDlg::OnInitDialog()内加入 for (int i=0; i<20; i++)//位图按钮的装载
{
m_BtmpBtn[i].AutoLoad(IDC_BUTTON1+i, this);
m_BtmpBtn[i].SizeToContent();
}
void CXXDlg::OnBtnClick()//位图按钮消息处理函数
{
MSG *pMsg = (MSG *) GetCurrentMessage();
if (pMsg->message != WM_COMMAND)
return;
UINT idButton = (int) LOWORD(pMsg->wParam);//被点击按钮的ID
}这样还不行,怀疑你的D版VC有点问题,重编译或重装试试如果