首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 在按钮上添加位图?
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-29 21:33:58 楼主
    下面是我的代码:
    BOOL IDS::OnInitDialog()
    {
    CDialog::OnInitDialog();

    // TODO: Add extra initialization here
    m_start.Create(NULL, WS_CHILD ¦WS_VISIBLE ¦BS_OWNERDRAW, 
      CRect(10,10,100,100), GetParent(), 1);

    m_start.LoadBitmaps(IDB_BITMAP2, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
    }
    这是一个对话框的初始化函数,m_start是与按钮控件相关联的变量
    编译没错,执行时却提示终止程序
    why?
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-29 21:37:541楼 得分:0
    我先在编辑对话框是在控件菜单中直接拖了一个按钮
    然后在程序中讲按钮的定义CButton m_start
    修改成CBitmapButton m_start
    不知道这样可以不
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • LBPeking
    • 等级:
    发表于:2008-03-29 21:38:592楼 得分:0
    ////给按钮添加对应的标签类型图片
    //m_NoteClass1.LoadBitmap(IDB_BITMAP54); 
    //HBITMAP hBitmap1 = (HBITMAP)m_NoteClass1.GetSafeHandle(); 
    //((CButton *)GetDlgItem(IDC_BUTTON3))->SetBitmap((HBITMAP)m_NoteClass1.GetSafeHandle());
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-29 21:44:153楼 得分:0
    m_NoteClass1是什么?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-29 21:49:164楼 得分:0
    CBitmap  m_NoteClass1;
    还是不行
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-29 22:05:445楼 得分:0
    BOOL IDS::OnInitDialog()
    {
    CDialog::OnInitDialog();

    // TODO: Add extra initialization ere

    CBitmap  m_NoteClass1;
    //m_start.Create(_T("My button"), WS_CHILD ¦WS_VISIBLE ¦BS_BITMAP,
      //CRect(10,10,60,50),GetParent(), 1);


    m_NoteClass1.LoadBitmap(IDB_BITMAP3); 
        HBITMAP hBitmap1 = (HBITMAP)m_NoteClass1.GetSafeHandle();   
        m_start.SetBitmap(hBitmap1);
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSEh
    }
    不行啊,编译执行都没错
    就是没图片
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yuzhongzhu
    • 等级:
    发表于:2008-03-29 22:09:326楼 得分:0
    http://www.vckbase.com/document/viewdoc/?id=491
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • strip
    • 等级:
    发表于:2008-03-29 22:57:207楼 得分:0
    这个百度、古狗一下一定有无数
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • scq2099yt
    • 等级:
    发表于:2008-03-30 00:03:158楼 得分:0
    没看出问题
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qinhaichao
    • 等级:
    发表于:2008-03-30 17:46:279楼 得分:0
    这位兄弟,我给支个招,看看好使不?
        1.把控件的属性中的"所有者绘制"和"位图"两项一定要选择上
        2.在该对话框中的初始化函数中确定控件的位置和大小.
        3.在对话框的ONPAINT 函数中绘制确定位置的位图.
        另外,还要注意一点,你上面所说的修改控件变量的类型的时候最好是在消息宏中修改,这样你在
        类向导中看到的控件变量的类型就应该是空类型了,实际上是"CBITMAPBUTTON"类型.
    你试一下看看,祝你成功!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-31 16:17:3210楼 得分:0
    1,在对话框类里定义成员变量:CBitmapButton m_bu;
    2,在初始化里添加:
    m_bu.LoadBitmaps(IDB_B1,IDB_B2,IDB_B3,IDB_B4);
    m_bu.SubclassDlgItem(IDC_BUTTON1,this);
    m_bu.SizeToContent();
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-31 16:55:2811楼 得分:0
    http://blog.csdn.net/qiqi5521/archive/2007/07/18/1697003.aspx
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-31 19:23:0312楼 得分:0
    1,在对话框类里定义成员变量
    CButton m_BitmapButton;

    2,在初始化里添加:
    BOOL CE0406Dlg::OnInitDialog()
    {
    CDialog::OnInitDialog();


    HBITMAP hBitmap = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1));  //IDB_BITMAP1 为BITMAP资源
    m_BitmapButton.SetBitmap(hBitmap);

    return TRUE;  // return TRUE  unless you set the focus to a control
    }
    3、再加一条
    void CE0406Dlg::DoDataExchange(CDataExchange* pDX)
    {
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CE0406Dlg)
    DDX_Control(pDX, IDC_BUTTON1, m_BitmapButton);  // 关联上
    //}}AFX_DATA_MAP
    }
    4、控件的属性(Properties)-》Styles中要将Bitmap勾上
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-01 13:37:3513楼 得分:0
    我先在编辑对话框是在控件菜单中直接拖了一个按钮
    映射成 CButton m_start 然后
    修改成CBitmapButton m_start
    这样就initdialog 的时候就不用再调用Create 了,,

    对了在资源编辑中,要把按钮的属性设置成为ownerdraw 这样的话图形按钮才会生效,否则是没有效果的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-01 21:42:1114楼 得分:0
    恩,我就是这样做的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-01 17:38:0615楼 得分:0
    我也想知道,正在找這方面的資料~~~~~
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved