怎样在Dialog里面,动态添加和删除按钮?

wflyfox 2003-10-19 08:33:02
==============================
如题
==============================
...全文
216 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyondtkl 2003-10-20
  • 打赏
  • 举报
回复
wflyfox(田飞)
QQ 添加好友, 添加按钮?应该不是的,是qq自己做的控件吧.
nalo 2003-10-20
  • 打赏
  • 举报
回复
CButton *m_pGroupBox1;
……
if( m_pGroupBox1 != NULL )
{
delete m_pGroupBox1;
m_pGroupBox1 = NULL;
}
m_pGroupBox1 = new CButton;
m_pGroupBox1->Create( _T( “Test” ), BS_PUSHBUTTON | BS_CENTER | WS_VISIBLE, CRect( CPoint( 200, 200 ), CSize( 200, 100 ) ), this, IDC_GROUPBOX1 );
……
m_pGroupBox1->DestroyWindow();
delete m_pGroupBox1;
m_pGroupBox1 = NULL;
vcppman 2003-10-19
  • 打赏
  • 举报
回复
CButton bt;
bt.Create();
bt.ShowWindow(SW_SHOW);
coolstar14 2003-10-19
  • 打赏
  • 举报
回复
动态添加或删除按钮是比较复杂的吧,如果不是特别有必要,建议你不要这么干,除非你是‘高手’
建议,你把需要的按钮放在窗体中,然后把临时不需要的隐藏起来,需要是用      GetDlgItem(ID) ->ShowWindow(SW_SHOW)显示出来就是了,反之,不需要时可以用SW_HIDE隐藏起来。
yaoha2003 2003-10-19
  • 打赏
  • 举报
回复
ShowWindow(SW_HIDE )ShowWindow(SW_SHOW )
Paris_Luo 2003-10-19
  • 打赏
  • 举报
回复
Create()
Destroy()
wflyfox 2003-10-19
  • 打赏
  • 举报
回复
各位大哥讨论一下,qq添加好友是怎么实现的,是不是动态添加的按钮?
android 图片 拍照 删除 添加 旋转 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.image_show); path = Environment.getExternalStorageDirectory(); file = new File(path + "/MapGIS/myImg/"); file.mkdirs(); getSD(); mSwitcher = (ImageSwitcher) findViewById(R.id.switcher); gallery = (Gallery) findViewById(R.id.gallery); mSwitcher.setFactory(this); mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in)); mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out)); gallery.setAdapter(new ImageAdapter(this)); gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> adapter, View view, int position, long id) { mSwitcher.setImageURI(imgList1.get(position).getUri()); pos = position; } public void onNothingSelected(AdapterView<?> arg0) { } }); // 拍照按钮 Button paizhao = (Button) this.findViewById(R.id.paizhao); paizhao.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // 判断SD卡是不是能用 if (isAvaiableSpace(600)) { // 当前可用 Intent imgIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); Date date = new Date(); nameTmp = dateFormat.format(date); imgIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(file, nameTmp + ".jpg"))); startActivityForResult(imgIntent, 1); } else // 当前不可用 { Toast.makeText(PhotoShowActivity.this, "SD卡不可用!", Toast.LENGTH_SHORT).show(); } } }); // 删除按钮 Button shanchu = (Button) this.findViewById(R.id.shanchu); shanchu.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub if (!imgList1.isEmpty()) { // 存放图片名字 final String fname = imgList1.get(pos).getName(); new AlertDialog.Builder(PhotoShowActivity.this).setIcon(R.drawable.alert_dialog_icon) .setTitle("警告").setMessage("确认删除此图片?") .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub File SDPATH2 = Environment.getExternalStorageDirectory(); File file2 = new File(SDPATH2 + "/MapGIS/myImg/" + fname); file2.delete(); imgList1.remove(pos); gallery.setAdapter(new ImageAdapter(PhotoShowActivity.this)); mSwitcher.reset(); Toast.makeText(PhotoShowActivity.this, "图片已成功删除!", Toast.LENGTH_SHORT).show(); } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Toast.makeText(PhotoShowActivity.this, "你取消了删除图片!", Toast.LENGTH_SHORT).show(); } }).show(); } else { Toast.makeText(PhotoShowActivity.this, "当前没有图片可以删除", Toast.LENGTH_SHORT).show(); } } }); // 向左旋转图片按钮 xuanzhuan2 = (Button) this.findViewById(R.id.xuanzhuan2); xuanzhuan2.setOnClickListener(new MyXuanZhuanClick(270)); // 向右旋转图片按钮 xuanzhuan = (Button) this.findViewById(R.id.xuanzhuan); xuanzhuan.setOnClickListener(new MyXuanZhuanClick(90)); }
一个书中的Android编程范例,Android 日程管理专家 APP源码,主要功能有:添加日程、日程管理、日程搜索、功能设置等。创建新日程时的临时数据,只需要年月日三个数据,用来在刚刚进入新建日程界面日把年月日默认设置成当前日期:   final static int DIALOG_SET_SEARCH_RANGE=1;//设置搜索日期范围对话框   final static int DIALOG_SET_DATETIME=2;//设置日期时间对话框   final static int DIALOG_SCH_DEL_CONFIRM=3;//日程删除确认   final static int DIALOG_CHECK=4;//查看日程   final static int DIALOG_ALL_DEL_CONFIRM=5;//删除全部过期日程   final static int DIALOG_ABOUT=6;//关于对话框   final static int MENU_HELP=1;//菜单帮助   final static int MENU_ABOUT=2;//菜单关于   public static enum WhoCall   {//判断谁调用了dialogSetRange,以决定哪个控件该gone或者visible    SETTING_ALARM,//表示设置闹钟 按钮    SETTING_DATE,//表示设置日期按钮    SETTING_RANGE,//表示设置日程查找范围按钮    NEW,//表示新建日程按钮    EDIT,//表示修改日程按钮    SEARCH_RESULT//表示查找按钮   临时记录新建日程界面里的类型spinner的position,因为设置时间的对话框cancel后回到新建日程界面时会刷新所有控件,spinner中以选中的项目也会回到默认。   String[] defultType=new String[]{"会议","备忘","待办"};//软件的三个不能删除的默认类型   Dialog dialogSetRange;//日程查找时设置日期起始范围的对话框   Dialog dialogSetDatetime;//新建或修改日程时设置日期和时间的对话框   Dialog dialogSchDelConfirm;//删除日程时的确认对话框   Dialog dialogCheck;//主界面中查看日程详细内容的对话框   Dialog dialogAllDelConfirm;//删除全部过期日程时的确认对话框   Dialog dialogAbout;//关于对话框   static ArrayList alType=new ArrayList();//存储所有日程类型的arraylist   static ArrayList alSch=new ArrayList();//存储所有schedule对象的ArrayList   Schedule schTemp;//临时的schedule   ArrayList alSelectedType=new ArrayList();//记录查找界面中类型前面checkbox状态的   String rangeFrom=getNowDateString();//查找日程时设置的起始日期,默认当前日期   String rangeTo=rangeFrom;//查找日程时设置的终止日期,默认当前日期   Layout curr=null;//记录当前界面的枚举类型   WhoCall wcSetTimeOrAlarm;//用来判断调用时间日期对话框的按钮是设置时间还是设置闹钟,以便更改对话框中的一些控件该设置为visible还是gone。。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧