精华内容
下载资源
问答
  • Android Edittext文本输入框输入文本时,弹出一删除图标,清空内容,代码只用到个自定义的类,直接引用到xml文件中即可
  • 1. 在对话框类中添加个NOTIFYICONDATA变量: 1 NOTIFYICONDATA m_Nid; 2. 初始化NOTIFYICONDATA变量 1 2 3 4 5 6 7 8 9 ...

    1. 在对话框类中添加一个NOTIFYICONDATA变量:

    1
    NOTIFYICONDATA m_Nid;

    2. 初始化NOTIFYICONDATA变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    //初始化NOTIFYICONDATA
    m_Nid.cbSize = sizeof (NOTIFYICONDATA);      //指定结构体大小
    m_Nid.hWnd = m_hWnd;        //指定接收通告消息的窗口句柄.系统就是通过hWnd和uID来辨别当Shell_NotifyIcon函数调用的时候操作的是哪个托盘图标
    m_Nid.uID = 0;          //应用程序定义的任务栏图标表示符。一个hWnd可以有很多的图标与之关联,这是通过指定不同的uID实现的
    m_Nid.hIcon = AfxGetApp()->LoadIcon(IDI_TRAY_ICON);  //要操作(添加、删除、修改)的图标句柄
    m_Nid.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;    //标记那些成员有效
    m_Nid.uCallbackMessage = WM_COMMAND;            //当鼠标在图标区域内发生了事件,比如单击、双击时,系统会把这个消息发送到hWnd成员对应的窗口,然后该窗口可以处理该事件。这里可以不是WM_COMMAND,可以自定义消息,然后响应这个消息
    TCHAR  szTitle[] = _T( "企业培训管理系统" );
    _tcscpy(m_Nid.szTip, szTitle);  //当鼠标放在tray icon上面的时候显示的文字

    3.调用Shell_NotifyIcon(NIM_ADD, &m_Nid);函数添加、删除或者修改图标

    1
    Shell_NotifyIcon(NIM_ADD, &m_Nid);

    4.窗口销毁时记得删除icon

    1
    2
    3
    4
    5
    void  CTrainingSystemDlg::OnDestroy()
    {
         CDialog::OnDestroy();
         Shell_NotifyIcon(NIM_DELETE, &m_Nid);
    }

    5.添加一个菜单,并且添加消息响应

    1
    2
    3
    4
    5
    void  CTrainingSystemDlg::OnShowMaindlg()
    {
         // 把窗口放在最前方
         SetForegroundWindow(); ShowWindow(SW_SHOW);
    }

    6.在对话框中声明消息响应函数:

    1
    virtual  BOOL  OnCommand( WPARAM  wParam, LPARAM  lParam);

    7.本来还应该BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间添加一个响应宏,但是这里我选择发送的是WM_COMMAND,所以直接重写类的OnCommand函数就行了。如果是你自定义的消息,就应该在这里添加ON_MESSAGE来响应你自定义的消息

    8.响应上面NOTIFYICONDATA结构体中uCallbackMessage成员定义的消息。这里就是WM_COMMAND,当然可以是别的自定义消息。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    BOOL  CTrainingSystemDlg::OnCommand( WPARAM  wParam, LPARAM  lParam)
    {
         if  (!wParam) //wParam为0表示消息来自一个菜单
         {
             switch  (lParam)
             {
             case  WM_RBUTTONDOWN:
                 {
                     CMenu menu, *pMenu;
                     menu.LoadMenu(IDR_TRAY_MENU);
                     pMenu = menu.GetSubMenu(0);
                     POINT ptPos;
                     GetCursorPos(&ptPos);
                     pMenu->SetDefaultItem(IDM_SHOW_MAINDLG);
                     SetForegroundWindow(); //这一行代码很重要,否则右键菜单工作//不正常。详见msdn说明: http://support.microsoft.com/kb/135788
                     pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_BOTTOMALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, ptPos.x, ptPos.y, this );
                 }
                 break ;
             case  WM_LBUTTONDBLCLK:
                 SetForegroundWindow();
                 ShowWindow(SW_SHOW);
                 break ;
             }
         }
     
         return  CDialog::OnCommand(wParam, lParam);
    }




    以上内容转载自http://www.cnblogs.com/chenkunyun/archive/2012/03/17/2403002.html

    展开全文
  • windows7点击"安全删除硬件并弹出媒体"无反应解决方法 我在移除硬件时,点击“安全删除硬件并弹出媒体”无反应的问题,如果采取直接拔掉USB,可能会损坏U盘或移动硬盘,对于该问题通过以下方式可以简单解决: ...

    windows7点击"安全删除硬件并弹出媒体"无反应解决方法

            我在移除硬件时,点击“安全删除硬件并弹出媒体”无反应的问题,如果采取直接拔掉USB,可能会损坏U盘或移动硬盘,对于该问题通过以下方式可以简单解决:
            “开始菜单”>>“控制面板”>>“系统和安全”>>“管理工具”>>“服务”>>在“服务”中找到“Bluetooth Service”,将启动类型调为“自动”,将服务状态修改为“已启动”,然后找到buletooth support service,将启动类型调为“自动”,并将服务状态修改为“已启动”,如果没有Buletooth Service可直接找buletooth support service,调为自动,然后关闭即可解决问题。本机没有Bluetooth Service,所以直接选择Bluetooth Support Service。

            点击“安全移除硬件”,即可选择要弹出的硬件了。

    展开全文
  • 在WIN7下插入U盘或移动硬盘后,点击右下角的“安全删除硬件并弹出媒体”小图标后,不显示U盘或移动硬盘,只有“…”省略号。莫名其妙IE自己打不开,没中病毒,没做过系统优化之类的莫名其妙出现打开文件夹弹出一个新...

    移动设备无法安全删除

    症状:

    1. 在WIN7下插入U盘或移动硬盘后,点击右下角的“安全删除硬件并弹出媒体”小图标后,不显示U盘或移动硬盘,只有“…”省略号。
    2. 莫名其妙IE自己打不开,没中病毒,没做过系统优化之类的
    3. 莫名其妙出现打开文件夹弹出一个新窗口,在不同一窗口打开每个文件夹,同上没中病毒,没做过系统优化之类的

    解决过程

    一、在“运行”窗口或CMD,输入:RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll
    如果能正常卸载U盘,可将上述命令创建为快捷方式。

    二、打开“运行”窗口,输入“services.msc”,找到“Buletooth Service”点击启动,改为自动,然后找到buletooth support service点击启动,改为自动,没有Buletooth Service可直接找buletooth support service,调为自动。

    三、以管理员方式打开CMD,执行以下两条命令
    regsvr32 “%SystemRoot%\System32\actxprxy.dll”
    regsvr32 “%ProgramFiles%\Internet Explorer\ieproxy.dll”

    四、实在不行就下载此文件,把里面的三个注册表文件导入试试。打开

    五、没有了,自己搜索去吧,我就找到这些了,找到解决办法的不妨在评论贴出解决办法共享。

    Photobucket

    搞定是搞定了,貌似跟原来的窗口不太一

    展开全文
  • 在CSS中,@keyframes根据你定义的样式规则来更有效的控制动画队列中的每个中间步骤(或者每个路径点)。用@keyframes来制定动画规则会比使用transition(过渡)来获得更细腻更全面的动画效果。 并且现在网络上...

    所谓动画,可以用animation或者transition两种方式实现。

     

    在CSS中,@keyframes根据你定义的样式规则来更有效的控制动画队列中的每一个中间步骤(或者每一个路径点)。用@keyframes来制定动画规则会比使用transition(过渡)来获得更细腻更全面的动画效果。

    • 并且现在网络上有非常多开源的CSS3动态库,可以下载源码,直接用!!!是真的,只需要把大神写好的@keyframes直接复制到css里,然后在animation中使用对应的动画名,就能直接用了!!!

    • 那咱们先来了解下@keyframes是个什么东西吧

    @keyframes slidein { 
    
    from { margin-left: 100%; width: 300%; }
    
    to { margin-left: 0%; width: 100%; } 
    
    }
    • from为开头帧
    • to为结束帧

    我们一般都采用简写的形式,一行代码将animation所有我们需要的属性设置好

    @keyframes duration | timing-function | delay | iteration-count | direction | fill-mode | play-state | name

    如:

    animation: 3s ease-in 1s 2 reverse both paused slidein;

     

    那么animation以及transition动画在微信小程序中能得到什么样的运用呢?

    接下来我将拿我在开源小程序组件库ColorUI中贡献的三个动画组件例子来展示一下

     

    一、全图图标导航

    JS

      data: {
        // 全屏图标导航
        showFullNavigation: false,
        navigation1: [
          { name: 'Color UI', src: '/images/icon.jpg' },
          { name: 'Color UI', src: '/images/icon.jpg' },
          { name: 'Color UI', src: '/images/icon.jpg' },
          { name: 'Color UI', src: '/images/icon.jpg' },
          { name: 'Color UI', src: '/images/icon.jpg' },
          { name: 'Color UI', src: '/images/icon.jpg' },
          { name: 'Color UI', src: '/images/icon.jpg' },
          { name: 'Color UI', src: '/images/icon.jpg' },
        ],
      },
      clickFullNavigation: function () {
        this.setData({
          showFullNavigation: !this.data.showFullNavigation
        }) 
      },

     HTML

    • 将bindtap的触发函数放在最外层,这样当出现遮罩层时,点击任意地方都可以取消,而不用专门去点一个小小的关闭按钮。
    <view bindtap='clickFullNavigation'>
        <view class="fullBox {{showFullNavigation ? 'fullBox-active':''}}'">
            <view class="nav-item-box" bindtap='gotoAdd'>
              <view wx:for="{{navigation1}}">
                <image class="nav-item" src="{{item.src}}"/>
                <text class='append'>{{item.name}}</text>
              </view>
            </view>
        </view>
    </view>

    CSS

    • 用@keyframes 的from(0%)和to(100%)以及各种属性来定义animation动画,然后在css中使用animation:动画持续时间 | 动画名。
    • transform是用来设置最开始样式的偏移,transform: translateX(1000rpx);是指沿着X轴偏移1000rpx,已经在屏幕之外了,transform: translateX(0);指的是偏移为0,即原本应该在的位置。就可以出现从外面到正中央,然后再正中央,退场这样的动画了。
    /* 全屏图标导航部分 */
    .fullBox{
      position: fixed;
      width: 100%;
      background: #ffffff;
      height: 100%;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 3;
      transform: translateX(1000rpx);
      animation: 0.5s spaceOutLeft;
    }
    .fullBox-active{
      transform: translateX(0);
      animation: 0.5s spaceInRight;
    }
    @keyframes spaceOutLeft {
      0% {
        opacity: 1;
        -webkit-transform-origin: 0% 50%;
                transform-origin: 0% 50%;
        -webkit-transform: scale(1) translate(0%, 0%);
                transform: scale(1) translate(0%, 0%);
      }
    
      100% {
        opacity: 0;
        -webkit-transform-origin: 0% 50%;
                transform-origin: 0% 50%;
        -webkit-transform: scale(.2) translate(-200%, 0%);
                transform: scale(.2) translate(-200%, 0%);
      }
    }
    @keyframes spaceInRight {
      0% {
        opacity: 0;
        -webkit-transform-origin: 100% 50%;
                transform-origin: 100% 50%;
        -webkit-transform: scale(.2) translate(200%, 0%);
                transform: scale(.2) translate(200%, 0%);
      }
    
      100% {
        opacity: 1;
        transform: translateY(0);
        -webkit-transform-origin: 100% 50%;
                transform-origin: 100% 50%;
        -webkit-transform: scale(1) translate(0%, 0%);
                transform: scale(1) translate(0%, 0%);
      }
    }

    二、下部弹出导航

    JS

      data: {
        // 下部弹出导航
        showBottomNavigation: false,
        navigation2: [
          { name: 'Color UI', src: '/images/icon.jpg' },
          { name: 'Color UI', src: '/images/icon.jpg' },
          { name: 'Color UI', src: '/images/icon.jpg' },
          { name: 'Color UI', src: '/images/icon.jpg' },
        ],
      },
      clickBottomNavigation: function () {
        this.setData({
          showBottomNavigation: !this.data.showBottomNavigation
        })
      },

    HTML

    <view bindtap='clickBottomNavigation'>
        <view class="chooseBox {{showBottomNavigation ? 'chooseBox-active':''}}'">
            <view class="nav-item-box" bindtap='gotoAdd'>
              <view wx:for="{{navigation2}}">
                <image class="nav-item" src="{{item.src}}"/>
                <text class='append'>{{item.name}}</text>
              </view>
            </view>
        </view>
        <view class="chooseMask"  wx:if="{{showBottomNavigation}}"></view>
    </view>

    CSS

    /* 下部弹出导航部分 */
    .chooseMask{
      display: flex;
      width: 100%;
      height: 100%;
      background: rgba(0,0,0,0.7);
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 2;
    }
    .chooseBox{
      border-radius: 30rpx;
      position: fixed;
      bottom: -20rpx;
      width: 100%;
      background: #ffffff;
      height: 340rpx;
      transform: translateY(340rpx);
      transition: all 0.4s;
      z-index: 3;
    }
    .chooseBox-active{
      transform: translateY(0);
      transition: all 0.4s;
      z-index: 3;
    }
    .nav-item-box{
      display: flex;
      flex-wrap: wrap;
    }
    .nav-item{
      margin-top: 60rpx;
      display: block;
      height: 125rpx;
      width: 125rpx;
    }
    .append{
      display: flex;
      justify-content: center;
    }

    三、左滑进行修改删除

    • JS的监听左滑的函数可以照搬,不用深究
    • css同样采用的是transform初始偏移,然后滑动触发函数,使得偏移复位的过程。
    • transition:all 0.4s;控制的是这个偏移动画持续的时间为0.4s

    JS

      data: {
        // 左滑删除部分的js
        showLeftScroll:false,
        startX: 0, 
        startY: 0,
        fakeDatas: [
          {
            title:'向左滑动,查看效果',
          },
        ],
      },
      clickLeftScroll: function () {
        this.setData({
          showLeftScroll: !this.data.showLeftScroll
        })
      },
      modify: function () {
        wx.showToast({
          title: '修改成功',
        })
      },
      del: function () {
        wx.showModal({
          title: '提示',
          content: '确定要删除这条信息?',
          success: function (res) {
            wx.showToast({
              title: '删除成功',
            })
          }
        })
      },
    
      // 左滑删除部分的js
    
      touchstart: function (e) {
        //开始触摸时 重置所有删除
        this.data.fakeDatas.forEach(function (v, i) {
          if (v.isTouchMove)//只操作为true的
            v.isTouchMove = false;
        })
        this.setData({
          startX: e.changedTouches[0].clientX,
          startY: e.changedTouches[0].clientY,
          fakeDatas: this.data.fakeDatas
        })
      },
      //滑动事件处理
      touchmove: function (e) {
        var that = this,
          index = e.currentTarget.dataset.index,//当前索引
          startX = that.data.startX,//开始X坐标
          startY = that.data.startY,//开始Y坐标
          touchMoveX = e.changedTouches[0].clientX,//滑动变化坐标
          touchMoveY = e.changedTouches[0].clientY,//滑动变化坐标
          //获取滑动角度
          angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY });
        that.data.fakeDatas.forEach(function (v, i) {
          v.isTouchMove = false
          //滑动超过30度角 return
          if (Math.abs(angle) > 30) return;
          if (i == index) {
            if (touchMoveX > startX) //右滑
              v.isTouchMove = false
            else //左滑
              v.isTouchMove = true
          }
        })
        //更新数据
        that.setData({
          fakeDatas: that.data.fakeDatas
        })
      },
    
    // 计算滑动角度
      angle: function (start, end) {
        var _X = end.X - start.X,
          _Y = end.Y - start.Y
        //返回角度 /Math.atan()返回数字的反正切值
        return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
      },
    })

    HTML

    <view wx:if="{{showLeftScroll}}" wx:for="{{fakeDatas}}" wx:key="{{index}}" class="touch-item {{item.isTouchMove ? 'touch-move-active' : ''}}" data-index="{{index}}" bindtouchstart="touchstart" bindtouchmove="touchmove">
      <view class="content">
        <text>{{item.title}}</text>
      </view>
      <view class="dele" bindtap="modify" >修改</view>
      <view class="dele" style='background-color:#c95b54;' bindtap="del">删除</view>
    </view>

    CSS

    /* 左滑删除部分 */
    .touch-item { 
      display: flex; 
      justify-content: space-between; 
      width: 100%; 
      overflow: hidden;  
      box-sizing: border-box;
      margin: 20rpx 0 6rpx 0;
      background: #ffffff;
      }
    .content { 
      height: 200rpx;
      width: 100%; 
      -webkit-transition: all 0.4s;
      transition: all 0.4s;
      -webkit-transform: translateX(220rpx);
      transform: translateX(220rpx); 
      background: #ffffff;
      margin: 30rpx 30rpx 30rpx -220rpx;
      padding: 30rpx;
      font-size: 50rpx;
      display: flex;
      align-items: center;
      justify-content: center;
      }
    .touch-move-active .content,.touch-move-active .dele { 
      -webkit-transform: translateX(0);
      transform: translateX(0);
      }
    .dele {
      background-color: #4479b2; 
      width: 220rpx; 
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center; 
      color: #fff;
      -webkit-transform: translateX(440rpx);
      transform: translateX(440rpx);
      -webkit-transition: all 0.4s;
      transition: all 0.4s;
    }
    .feed-item{
      width: 690rpx;
      padding: 30rpx 30rpx 10rpx 30rpx;
      margin: 8rpx 0 6rpx 0;
      background: #ffffff;
    }

    github地址:https://github.com/JasonLam0990/ColorUI

    展开全文
  • layer初体验之弹出一删除确认界面

    千次阅读 2016-11-28 12:35:28
    < html > < head > < link ...'删除确认' ...'您确定要删除这条记录吗?' ,closeBtn: 1 }, function (index) { //business logic layer.close(index); }); script > body > html >
  • 在开始菜单点运行(或 WIN + R) 输入:services.msc在服务列表中找到:“Buletooth Service” 或“Bluetooth Support Service”将启动类型修改为:“自动”,然后点击“启动”即可搞定。
  • Android7.1(API Level 25)及以上系统可以自定义Shortcuts,通过在桌面上长按App Icon弹出Shortcut列表,点击某个shortcut可使用户快捷得打开App里常用的或推荐的任务。国内各个厂商基本上在安卓8.0上集成了该功能...
  • android7.0,android 长按app图标 shortcuts android 实现3dTouch
  • Qt右键弹出菜单+图标

    千次阅读 2012-08-24 16:19:25
    Qt中的部件的弹出菜单(ContextMenu),依据ContextMenuPolicy的值的不同,有四种形式: 、默认菜单 此时,ContextMenuPolicy的值为Qt::DefaultContextMenu,这是默认值,其将显示部件定义的默认菜单 二、无...
  • 删除AppDate后出现任务栏图标点击没反应的解决方法 本人因为C盘满了,时手贱把c盘里面用户文件的AppData删除了,结果出现有些软件打不开,任务栏点击没反应、游览器插件丢失、软件的环境变量消失等 AppDate文件...
  • from:...点击托盘图标激活窗口,通过托盘图标弹出菜单来退出程序。本段代码就是要完成这样的功能,是 SWT 来实现的。 直接代码给出,代码中有较详细的注释,说明了本程序
  • IE窗口定时弹出中招者的机器每隔段时间就弹出IE窗口,地址指向网络注氓的个人主页。不晓得是不是网络流氓以为这样你会经常光顾?解决办法:点击开始-运行-输入msconfig,选择启动,把里面后缀为hta的都勾掉,重启...
  • 1、在Windows10桌面,我们右键点击开始按钮,在弹出菜单中选择“运行”菜单项(作为个小白程序员,我个人比较青睐win+R) 2、在打开的运行窗口中,我们输入命令regedit,然后点击确定按钮(有的兄弟们电脑上...
  • 如何删除ubuntu13.03面板的快捷图标

    千次阅读 2013-08-01 10:36:18
    按住Alt+鼠标右键点击图标弹出 移动及从面板上删除选项,选择删除cd /home/$USER_HOME/.config/gnome-panel/lauchers 删除对应的desktop文件
  • 电脑桌面上多了个无名图标或无名文件夹,右键有几个选项:1.剪切(但剪切不动,剪切后右击鼠标,粘贴上仍为隐藏)2.创建快捷方式(点一下创建快捷方式弹出对话框,显示...删除(点删除,又弹出对话框:确实要从桌面
  • 在Mac中删除残留的启动台图标

    千次阅读 2020-08-15 12:00:37
    在Mac中删除残留的启动...1-打开访达(Finder),点击最顶部菜单栏的“前往”-“前往文件夹”,接着输入“/private/var/folders”然后在弹出的访达(Finder)窗口搜索栏输入:com.apple.dock.launchpad,搜索范围选择
  • 恢复和删除桌面快捷方式图标箭头

    千次阅读 2013-06-08 21:38:29
    方法:注册表删除和恢复    删除方法  1....  2.在lnkfile子键下面找到个名为“isshortcut”的键值,它表示在桌面的.lnk快捷...右键单击“isshortcut”,然后从弹出的菜单中选择“删除”,将该键值删除
  • 当用户点击文件鼠标右键时,会在相应文件下弹出菜单栏ContentMenuStrip控件,显示“打开文件”和“删除文件”.点击打开文件会通过电脑默认方式打开文件,包括txt\Office\视频mp4 avi等,当删除文件,文件会删除至回收...
  • 想到写这篇文章,主要源自使用Kindle过程中的个困惑。 虽然Kindle自带独立充电器,但我依然喜欢连接到电脑上充电,因为在充电的同时还可以往里面复制新的文件。然而在使用过程中遇到了个非常奇怪的问题:连接...
  • mac苹果电脑删除顽固残留软件图标

    千次阅读 2020-02-19 22:08:30
    核心:删除“启动台”数据库里对应app...2、在弹出的访达(Finder)窗口搜索栏输入【com.apple.dock.launchpad】搜索范围选择【folders】 3、接着进入【com.apple.dock.launchpad】文件夹里,可以看到文件夹db,右键...
  • 如何屏蔽电脑弹出的广告

    千次阅读 热门讨论 2020-11-03 08:55:06
    4、在窗口的左侧,点击【任务计划程序库】,把中间这些弹出广告的任务全部删除掉(右键选择删除即可),如下图所示: 5、回到【控制面板】界面,选中【Internet选项】,如下图所示: 6、选择
  • 如果该图标无缘无故消失了,可以点击“开始”“运行”,在弹出的运行对话框中输入“rundll32.exe shell32.dll,Control_RunDLL hotplug.dll’(注意Control_RunDLL区分大小写),回车后即可看到熟悉的“安全删除硬件”...
  • 使用鼠标滑动屏幕或者点击下边的小图标,可以更改页面和图标,因为没有那么多素材所以只用了两张图片区分。 1.layout文件夹下新建top.xml页面,作为顶部标题。 top.xml页面: android:layo
  • Windows中,要拔出移动硬盘,正确的操作方式是点击图标区"安全删除硬件并弹出媒体"的图标,然后在列表中选择你的移动硬盘,然后再拔出硬盘.但是在我的新电脑上,出现了很惊悚的事情.弹出列表不仅仅列出移动硬盘,还把机箱...
  • 安卓弹出对话框——Alertdialog(

    千次阅读 2016-03-16 18:03:43
    我们看到,Dialog有很多的子类实现,所以我们要定义个对话框,使用其子类来实例化个即可,而不要直接使用Dialog这个父类来构造。 二、AlertDialog 今天我们重点要来了解的就是AlertDialog对话框,我们看到...
  • SweetAlert简单使用,弹出对话框

    万次阅读 热门讨论 2016-11-27 19:00:13
    SweetAlert可以替代JavaScript原生的alert和confirm等函数呈现的弹出提示框,它将提示框进行了美化,并且允许自定义,支持设置提示框标题、提示类型、内容展示图片、确认取消按钮文本、点击后回调函数等。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,303
精华内容 23,721
关键字:

一点击图标就弹出删除