vc6.0 mfc如何使用组合框切换不同图片
1个回答
推荐于2016-11-06
展开全部
假设组合框保存了很多图片文件名, CComboBox m_ctrlSeleteImgFilename是控件关联变量,
鼠标选择某一个后
在OnEditchangeCombo1事件里处理:
char str2[128];
int index;
index = m_ctrlSeleteImgFilename.GetCurSel();
if(index >= 0)
{
str2[0]=0;
m_ctrlSeleteImgFilename.GetLBText(index,str2);
AfxMessageBox(str2);//改为显示本图片文件的语句即可
}
鼠标选择某一个后
在OnEditchangeCombo1事件里处理:
char str2[128];
int index;
index = m_ctrlSeleteImgFilename.GetCurSel();
if(index >= 0)
{
str2[0]=0;
m_ctrlSeleteImgFilename.GetLBText(index,str2);
AfxMessageBox(str2);//改为显示本图片文件的语句即可
}
追问
那显示图片文本的语句应该是什么呢
追答
方法4 通过CBitmap,HBITMAP,直接用OnPaint()绘制
首先在对话框类中声明一个变量: CBitmap m_bmp;
然后我们在对话框中加入一个picture 标签,名为IDC_STATIC1
然后:
BOOL CDisplayPic::OnInitDialog()
{
CDialog::OnInitDialog();
if( m_bmp.m_hObject != NULL )//判断
m_bmp.DeleteObject();
//载入图片
HBITMAP hbmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),"c://aaa.bmp", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION|LR_LOADFROMFILE);
if( hbmp == NULL )
return FALSE;
//该断程序用来取得加载的BMP的信息//
m_bmp.Attach( hbmp );
DIBSECTION ds;
BITMAPINFOHEADER &bminfo = ds.dsBmih;
m_bmp.GetObject( sizeof(ds), &ds );
int cx=bminfo.biWidth; //得到图像宽度
int cy=bminfo.biHeight; //得到图像高度
//得到了图像的宽度和高度后,我们就可以对图像大小进行适应,即调整控件的大小,让它正好显示一张图片///
CRect rect;
GetDlgItem(IDC_STATIC1)->GetWindowRect(&rect);
ScreenToClient(&rect);
GetDlgItem(IDC_STATIC1)->MoveWindow(rect.left,rect.top,cx,cy,true);//调整大小
return TRUE;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询