哪位大神指点一下怎么给单文档的按钮添加位图呢? 最好给个程序,好像不能用CBitmapButton,不知道怎么办? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 (1) 用MFC AppWizard创建一个默认的单文档应用程序Ex_BMP。(2) 按快捷键Ctrl+R,弹出“插入资源”对话框,选择Bitmap资源类型。(3) 单击[导入]按钮,出现“导入资源”对话框,将文件类型选择为“所有文件(*.*)”,从外部文件中选定一个位图文件,然后单击[Import]按钮,该位图就被调入应用程序中。保留默认的位图资源标识IDB_BITMAP1。!!!这是教材ppt上面给的步骤,按照它的步骤插入的图片的ID并不是IDB_BITMAP1,而是IDR_AA1,就是以IDR开头的,void CEx_BMPView::OnDraw(CDC* pDC){ CEx_BMPDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CBitmap m_bmp; m_bmp.LoadBitmap(IDB_BITMAP1); // 调入位图资源 BITMAP bm; // 定义一个BITMAP结构变量,以便获取位图参数 m_bmp.GetObject(sizeof(BITMAP),&bm); CDC dcMem; // 定义并创建一个内存设备环境 dcMem.CreateCompatibleDC(pDC); CBitmap *pOldbmp = dcMem.SelectObject(&m_bmp); // 将位图选入内存设备环境中 pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY); // 将位图复制到实际的设备环境中 dcMem.SelectObject(pOldbmp); // 恢复原来的内存设备环境} HBITMAP hBitmap; hBitmap = LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1)); // IDB_BITMAP_TEST为资源图片ID ((CButton *)GetDlgItem(IDC_BUTTON1))->SetBitmap(hBitmap); 最后一步我经常也好忘记那就是吧按钮的bitmap属性改成true,这个我试过了,是可以的,希望可以帮到你, 怎么会不能,我的开发工具VC6.0,VC2008,VS2005,VS2010都能设置, 定义函数、参数 点击对话框上的一个按钮就输出文本~~~ 如何设置控件的背景颜色呢? ADO如何移动到指定的第几条记录上? 在局域网中,如何编程识别交换机与路由器? 有在天津作过兼职的吗? 熟悉Socket Tcp网络通讯的高手请进,状态是LISTENING, 但为何拒绝服务? 能否在VC++中实现.OCX和.DLL的注册?用安装制作程序功能注册控件怎样才能避免注册失败。 如何得到CRichEditCtrl中,光标所在的行和列的值? GDI问题 CPaitDC和CDC为什么效果不一样 InvalidateRect实现时钟
(2) 按快捷键Ctrl+R,弹出“插入资源”对话框,选择Bitmap资源类型。
(3) 单击[导入]按钮,出现“导入资源”对话框,将文件类型选择为“所有文件(*.*)”,
从外部文件中选定一个位图文件,然后单击[Import]按钮,该位图就被调入应用
程序中。保留默认的位图资源标识IDB_BITMAP1。
!!!这是教材ppt上面给的步骤,按照它的步骤插入的图片的ID并不是IDB_BITMAP1,而是IDR_AA1,就是以IDR开头的,void CEx_BMPView::OnDraw(CDC* pDC)
{
CEx_BMPDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CBitmap m_bmp;
m_bmp.LoadBitmap(IDB_BITMAP1); // 调入位图资源
BITMAP bm; // 定义一个BITMAP结构变量,以便获取位图参数
m_bmp.GetObject(sizeof(BITMAP),&bm);
CDC dcMem; // 定义并创建一个内存设备环境
dcMem.CreateCompatibleDC(pDC);
CBitmap *pOldbmp = dcMem.SelectObject(&m_bmp); // 将位图选入内存设备环境中
pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY);
// 将位图复制到实际的设备环境中
dcMem.SelectObject(pOldbmp); // 恢复原来的内存设备环境
}
hBitmap = LoadBitmap(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP1)); // IDB_BITMAP_TEST为资源图片ID
((CButton *)GetDlgItem(IDC_BUTTON1))->SetBitmap(hBitmap); 最后一步我经常也好忘记那就是吧按钮的bitmap属性改成true,这个我试过了,是可以的,希望可以帮到你,