BOOL CXmlTestDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
} // Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_strAuthor = "E:\\xmlTest\\res\\botton_gif_014.bmp";
m_strTitle = "E:\\xmlTest\\res\\botton_gif_026.bmp"; HBITMAP createBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_strAuthor, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
HBITMAP loadBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_strTitle, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
if(createBitmap && loadBitmap)
{
//CButton *pButton=(CButton*)GetDlgItem(IDC_CREATE);
m_btnCreate.SetBitmap(createBitmap);
m_btnLoad.SetBitmap(loadBitmap);
} return TRUE; // return TRUE unless you set the focus to a control
}
这里加载成功,没有问题if(createBitmap && loadBitmap) 成立可是同样的代码,放到button事件中处理,就失败了,如下
void CXmlTestDlg::OnChange()
{
// TODO: Add your control notification handler code here
//m_strAuthor and m_strTitle has been changed
HBITMAP Bitmap1 = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_strAuthor, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
HBITMAP Bitmap2 = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_strTitle, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
if(Bitmap1 && Bitmap2)
{
//CButton *pButton=(CButton*)GetDlgItem(IDC_CREATE);
m_btnCreate.SetBitmap(Bitmap1);
m_btnLoad.SetBitmap(Bitmap2);
}
}这个里面就失败了,if(Bitmap1 && Bitmap2)为false,很奇怪,不知道为什么会这样?求解
{
CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
} // Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_strAuthor = "E:\\xmlTest\\res\\botton_gif_014.bmp";
m_strTitle = "E:\\xmlTest\\res\\botton_gif_026.bmp"; HBITMAP createBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_strAuthor, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
HBITMAP loadBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_strTitle, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
if(createBitmap && loadBitmap)
{
//CButton *pButton=(CButton*)GetDlgItem(IDC_CREATE);
m_btnCreate.SetBitmap(createBitmap);
m_btnLoad.SetBitmap(loadBitmap);
} return TRUE; // return TRUE unless you set the focus to a control
}
这里加载成功,没有问题if(createBitmap && loadBitmap) 成立可是同样的代码,放到button事件中处理,就失败了,如下
void CXmlTestDlg::OnChange()
{
// TODO: Add your control notification handler code here
//m_strAuthor and m_strTitle has been changed
HBITMAP Bitmap1 = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_strAuthor, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
HBITMAP Bitmap2 = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_strTitle, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
if(Bitmap1 && Bitmap2)
{
//CButton *pButton=(CButton*)GetDlgItem(IDC_CREATE);
m_btnCreate.SetBitmap(Bitmap1);
m_btnLoad.SetBitmap(Bitmap2);
}
}这个里面就失败了,if(Bitmap1 && Bitmap2)为false,很奇怪,不知道为什么会这样?求解
解决方案 »
- 如何改变GetSystemMetrics(SM_CYMAXIMIZED)结果
- 对话框背景的问题!
- failed to (or don't know how to) build
- 请教如何关闭视图
- 绝对菜鸟问题 vc中插入非bmp格式
- 在ATL中,想封装一个想VB里的ListView
- 用VC编的程序,如何在access建的数据库中新建表;复制表,并改名;为表改名?
- 如何取得SCSI硬盘的序列号。
- 跪求怎么样使gdi+绘制窗口背景随窗口大小改变
- 用ADO方法,向access中添加第一条纪录总加不进去,没有任何反映!只好在表中预制一条无用纪录,可总不方便,那位高手知道怎么回事?谁遇到过这种情况嘛?
- VC问题,编写的程序在启动时初始化工作要怎么写?
- 求救!!!DrawDibBegin() 错误unhandled exception at
if(Bitmap1 && Bitmap2)为false
说明获取位图句柄失败了m_btnCreate.ModifyStyle(0,BS_BITMAP);//如果你在属性中选中了Bitmap,这句不要
m_btnCreate.SetBitmap(Bitmap1);