pic本来是动太图 发给朋友为啥不动明王了

& VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control)
VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control)
&&&&&& 上一节中鸡啄米讲的是,本节主要讲一种简单实用的控件,图片控件Picture Control。我们可以在界面某个位置放入图片控件,显示图片以美化界面。&&&&&& 图片控件简介&&&&&& 图片控件和前面讲到的都是静态文本控件,因此两者的使用方法有很多相同之处,所属类都是CStatic类,有关成员函数已在前面介绍,这里就不重复了。&&&&&& 图片控件静态和动态加载图片&&&&&& 鸡啄米下面为大家演示如何为图片控件静态和动态加载位图图片。&&&&&& 1. 图片控件静态加载图片&&&&&& 1)创建一个基于对话框的工程,名称设置为&Example27&。&&&&&& 2)准备一张Bitmap图片,名称设为&test.bmp&,放到工程的res文件夹中,res文件夹路径为...\Example27\Example27\res。鸡啄米在这里用的是一张鸡啄米网站的截图。&&&&&& 3)在Resource View中的&Example27.rc*&节点上点右键,选择&Add Resource...&,弹出&Add Resource&对话框:&&&&&&& 然后在左侧的&Resource Type&中选择&Bitmap&,点按钮&Import&,显示一个文件对话框,我们选择res文件夹中的test.bmp图片文件,导入成功后会在Resource View的Example27.rc*节点下出现一个新的子节点&Bitmap&,而在&Bitmap&节点下可以看到刚添加的位图资源IDB_BITMAP1,这里的默认ID就不修改了。&&&&&& 4.)在自动生成的对话框模板IDD_EXAMPLE27_DIALOG中,删除&TODO: Place dialog controls here.&静态文本控件、&OK&按钮和&Cancel&按钮。添加一个Picture Control控件,在图片控件的属性页中有一个Type属性,Type属性下拉列表中有8种类型,下面分别介绍下:&&&&&& Frame:显示一个无填充的矩形框,边框颜色可以通过Color属性的下拉列表设定&&&&&& Etched Horz:显示一条横分割线&&&&&&&Etched Vert:显示一条竖分割线&&&&&& Rectangle:显示一个填充的矩形框,矩形颜色可通过Color属性的下拉列表设定&&&&&& Icon:显示一个图标(Icon),图标通过Image 下拉列表来设置图标资源ID&&&&&& Bitmap:显示一个位图(Bitmap),位图通过Image 下拉列表来设置位图资源ID&&&&&&&Enhanced Metafile:显示一个加强的元数据文件(Metafile)&&&&&&&Owner Draw:自绘&&&&&&&因为我们要加载的是位图图片,所以Type属性选择Bitmap。&&&&&& 5)在图片控件的Image属性的下拉列表中选择3)中导入的位图IDB_BITMAP1。&&&&&& 6)编译运行程序,弹出结果对话框,如下图所示:&&&&&&& 2. 图片控件动态加载图片&&&&&&&&以上讲的是静态加载图片的方法,下面接着讲动态加载图片的方法。程序依然沿用上面的工程。步骤如下:&&&&&&& 1)将上面添加的图片控件的Image属性IDB_BITMAP1清空,Type属性不变。&&&&&& &2)修改图片控件的ID为IDC_JIZHUOMI_STATIC,然后为其添加CStatic类型控件变量m_jzmPicture。(若不修改ID则无法为其)&&&&&&& 3)在对话框下方添加一按钮控件,Caption属性改为&加载图片&,ID设为IDC_LOAD_PIC_BUTTON。&&&&&&& 4)为按钮IDC_LOAD_PIC_BUTTONCExample27Dlg::OnBnClickedLoadPicButton(),然后修改此函数的函数实现如下:
void&CExample27Dlg::OnBnClickedLoadPicButton() &&
&&&&CBitmap&&&&&
&&&&HBITMAP&hB&&&&&&
&&&&bitmap.LoadBitmap(IDB_BITMAP1);&&&&
&&&&hBmp&=&(HBITMAP)bitmap.GetSafeHandle();&&&&
&&&&m_jzmPicture.SetBitmap(hBmp);&&&&&&
}&&&&&&&&& 5)编译运行程序,弹出结果对话框,点击按钮&加载图片&,结果如下:&&&&&& 图片控件Picture Control的内容就讲到这里了。应该说还是比较简单的。最后,鸡啄米在此对一直以来关注本站的老朋友以及刚来的新朋友表示感谢。
除非特别注明,文章均为原创
转载请标明本文地址:
作者:鸡啄米
&&( 21:53:33)&&( 0:49:15)&&( 23:21:17)&&( 21:47:59)&&( 0:24:18)&&( 0:15:31)&&( 22:29:38)&&( 21:26:10)&&( 22:25:46)&&( 20:30:21)
来学习下编程。。
不错谢谢博主分享
博主是做编程的吗?鸡啄米 于
23:53:02 回复是的,程序猿
博主是 一个牛x的人
期待博主的后续教程
支持!鸡啄米 于
23:26:41 回复谢谢你们的支持,欢迎常来交流。
博主加油!努力向您学习
能请教您一个问题么?我的VS2005中插入图片的时候总是导入失败是怎么回事啊??导入的时候就没反应鸡啄米 于
23:12:27 回复你是不是导入的png或gif格式?如果是,则可以先创建此图片类型,然后导入就可以了,不过导入的也是二进制形式,不能直接看到图。
有关成员函数已在前面介绍,这里就不重
LZ你好,靜態加載圖片,如何去調整圖片大小呢?
博主的文章非常好啊!有没有群可以交流哇?~鸡啄米 于
22:56:06 回复有,但已经满了,不好意思,以后有空再建一个
鸡哥,请问如何调整图片大小?HelloWorld 于
22:46:53 回复你好,鸡啄米,成员函数如此多,你是怎么去找你想用的函数的?能不能传授一下渔的知识
的确,我也有关于图片加载后的位置和尺寸的问题,继续学习
我怎么在MFC中不行?用的是vc6.0和vs2008也不行哦
资源视图中添加资源,导入test.bmp图片后无反应,没有出现BitMap文件夹?希望楼主解惑。。。
解决了:先前直接将.png图片改为.bmp添加资源一直没反应,问题:直接改后缀名将失败!解决:在画图中打开电脑中已经有的图片,另存为.bmp格式再导入就没有问题了!Icarus 于
17:00:13 回复你好,我按照你的方法做了,还是导不进去,是什么回事(⊙o⊙)?
图片太大会不会import不进去啊 ??bitmap的
静态的import不进去 啊我是放在res的bmp格式,,求解啊
15楼是正解 不能直接将其他格式的 直接改后缀bmp,导不进去的,只能用其他软件打开另存有效。但是我直接改的后缀在res里面显示的类型也是bmp啊 怎么就不行呢?虽然15楼的可以但是这个我还没搞懂!
我想请问博主一个问题,就是我用MFC建立了一个对话框用于接收单片机发送的数据,在文本框中能显示接收到的数据,现在我想用这些数据进行“实时”绘图,该怎么做啊,我知道对于你来说一定不难,帮帮忙吧
按照你的方法做了,第一个方法可以,加按钮的方法,同样设置了,但是就是报错debug assertion failed,可能是啥原因呢/azsj1.htm/azsj2.htm/azsj3.htm/azsj4.htm/azsj5.htm/azsj.htm/html/azsj1.htm/html/azsj2.htm/html/azsj3.htm/html/azsj4.htm/html/azsj5.htm/html/azsj.htm由 鸡啄米 于
1:13:45 最后编辑
你对我的帮助是很大的,谢谢但是,我有一个问题,我按你的方式添加了,可是我的资源文件里面找不到啊,也没有显示添加失败(ps:文件的格式是正确的)
动态加载图片上不去啊,调试说unused &Unable to read memory&?
楼主加油,我们都看好你哦~~~~~~~~~~
加载圆形图片的时候 背景有颜色咋弄?
如何不通过资源视图的方法,而是通过图片在某一文件夹下的路径,来显示图片呢?谢谢!
完全随机文章女人全身裸照可以看出乳头图片,老外阴户图
友情链接:Android 动态添加图片
近在项目中用到动态添加图片,然后换行的实现。刚开始想用GridView,但是没用,什么原因到是忘了。下面我记录一下我的实现方式。
看代码xml:
Activity:
import java.io.FileInputS
import java.io.FileNotFoundE
import java.util.ArrayL
.ruimit.R;
import android.content.I
import android.database.C
import android.graphics.BitmapF
import android.net.U
import android.os.B
import android.provider.MediaS
import android.view.V
import android.view.View.OnClickL
import android.widget.ImageV
import android.widget.ImageView.ScaleT
import android.widget.LinearL
import android.widget.LinearLayout.LayoutP
import com.china.hunbohui.BaseA
import com.china.hunbohui.IA
* @author wangjing
public class AddPicAty extends BaseActivity {
private static final int SEL_PIC = 1;
private LinearLayout linearLayout =
private ArrayList imageB
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_pic_lay);
initView();
private void initView() {
imageBeans = new ArrayList();
linearLayout = (LinearLayout) findViewById(R.id.linearlayout);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 本地相册选取
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); // "android.intent.action.GET_CONTENT"
// intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent, SEL_PIC);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == SEL_PIC) {
Uri uri = data.getData();
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, proj, null, null, null);
// 按我个人理解 这个是获得用户选择的图片的索引值
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
// 将光标移至开头 ,这个很重要,不小心很容易引起越界
cursor.moveToFirst();
// 最后根据索引值获取图片路径
String path = cursor.getString(column_index);
ImageBean bean = new ImageBean();
bean.setPath(path);
imageBeans.add(bean);
updateLayout();
* 更新图片布局
private void updateLayout(){
LinearLayout ll_horizontal =
linearLayout.removeAllViews();
for (int i = 0; i < imageBeans.size(); i++) {
if (i%4 == 0) {
ll_horizontal = new LinearLayout(context);
ll_horizontal.setOrientation(LinearLayout.HORIZONTAL);
linearLayout.addView(ll_horizontal);
ImageView img = new ImageView(context);
setImgLayoutParams(img);
setImageBitmap(img, imageBeans.get(i).getPath());
ll_horizontal.addView(img);
* 设置imageview的尺寸
private void setImgLayoutParams(ImageView img) {
// LayoutParams lp = (LayoutParams) img.getLayoutParams();
LayoutParams lp = new LayoutParams(0, 0);
lp.width = (int) ((IApplication.with - 20 * IApplication.dencity - 3 * 5 * IApplication.dencity) / 4);
lp.height = lp.
lp.rightMargin = (int) (5 * IApplication.dencity);
lp.bottomMargin = (int) (5 * IApplication.dencity);
img.setLayoutParams(lp);
img.setScaleType(ScaleType.CENTER_CROP);
* 为imageview设置图片
private void setImageBitmap(ImageView img,String url){
FileInputStream fis = new FileInputStream(url);
img.setImageBitmap(BitmapFactory.decodeStream(fis));
} catch (FileNotFoundException e) {
e.printStackTrace();
* 图片对象
class ImageBean {
public String getPath() {
public void setPath(String path) {
this.path =
主要学习点:对图片的尺寸设置、布局的更新这两块。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。

我要回帖

更多关于 不动明王 的文章

 

随机推荐