精华内容
下载资源
问答
  • 我有一个文本框,下面还有一个DIV,我想让DIV绝对定位在文本框的下面, ...不知道怎么得到这个文本框的TOP,LEFT值,因为我并没有设置这些值, 用文本框.style.top/left得不到。 希望达人们帮帮忙。谢谢。
  • 使用struts2时,如果dao部分产生错误,错误堆栈不是在Eclipse的控制台窗口打印,而是在struts2自定义的错误页面显示。(struts.devMode=true) 如何设置让它在Eclipse的...怎样设置能让它打印出所有的原始错误堆栈呢
  • 警惕这些隐私漏洞】网传#微信发原图或泄露位置信息#,有专家表示需同时满足3个条件: ①手机GPS定位已打开; ②拍照设置保存了地理位置; ③发送原图。怎样避免?可在拍摄时选择关闭位置信息或不发送原图。 还有...

    【你的隐私可能被窃取!警惕这些隐私漏洞】网传#微信发原图或泄露位置信息#,有专家表示需同时满足3个条件:

    ①手机GPS定位已打开;

    ②拍照设置保存了地理位置;

    ③发送原图。怎样避免?可在拍摄时选择关闭位置信息或不发送原图。

    还有这些隐私漏洞要警惕!收藏!保护自己的个人信息。









    展开全文
  • Log日志打印工具类

    千次阅读 2017-08-11 15:32:58
    android的日志信息打印为我们开发过程中提供了许多帮助,不过系统的log还不够完美,例如不能快速定位代码位置,每次都要考虑设置怎样的Tag,还不美观,超长字符串打印不全(log单条打印长度限制4*1024字符长度),不...

    Log日志打印工具类

    转载需注明出处http://blog.csdn.net/fight_0513/article/details/77098225

    概述

    • android的日志信息打印为我们开发过程中提供了许多帮助,不过系统的log还不够完美,例如不能快速定位代码位置,每次都要考虑设置怎样的Tag,还不美观,超长字符串打印不全(log单条打印长度限制4*1024字符长度),不能一眼就找到自己打印的信息……
    • 网上已经有许多优秀的LOG框架 但是个人觉得有些臃肿,所以想自己动手写个方便的Log工具

    个人需求

    • 能定位(点击日志跳转到具体代码位置)
    • 自动的日志打印开关(发布release版本时自动关闭日志打印)
    • 美观(带边宽,可控制)
    • 可以打印JSon数据,保证信息完整
    • 不需要手动设置TAG
    • 支持传入Objec
    • 在手动设置TAG的情况下支持输入多个参数
    • 提供线程信息

    不支持打印到文件,不支持打印XML


    执行效果

    这里写图片描述

    功能提要 >>代码定位

    日志工具类的技术含量还是比较低的值得一提的只有快速定位代码位置的功能,这里涉及一个 StackTraceElement 类 就是堆栈信息;通过这个类可以获取当前堆栈信息,例如当前运行的线程,文件名,方法名,类名和代码所在行数……

            //获取堆栈信息
            // 这里的数组的index=5是根据你工具类的层级做不同的定义,遍历之后就知道啦
            StackTraceElement[] targetElement = Thread.currentThread().getStackTrace();
            String fileName = targetElement[5].getFileName();
            String className = targetElement[5].getClassName();
            int lineNum = targetElement[5].getLineNumber();
            String methName = targetElement[5].getMethodName();
    
            Log.e("TAG", "processContents: >>>" + fileName);
            Log.e("TAG", "processContents: >>>" + className);
            Log.e("TAG", "processContents: >>>" + methName);
            Log.e("TAG", "processContents: >>>" + lineNum);
    
            //严格按(FileName:LineNuber)的格式来写 才可以定位
            Log.e("TAG", "processContents: >>>" + "(" + fileName + ":" + lineNum + ")");

    打印结果
    这里写图片描述

    注意

    调用 BuildConfig 导包时一定要导入 当前 Module 的包,导入其他包 BuildConfig.DEBUG的值将会一直为false

    原因:BuildConfig.java 是编译时自动生成的,并且每个 Module 都会生成一份,以该 Module 的 packageName 为 BuildConfig.java 的 packageName。所以如果你的应用有多个 Module或者有其他三方依赖 就会有多个 BuildConfig.java 生成,而上面的 Lib Module import 的是自己的 BuildConfig.java,编译时被依赖的 Module 默认会提供 Release 版给其他 Module 或工程使用,这就导致该 BuildConfig.DEBUG 会始终为 false。

    完整代码 >>代码下载

    代码注释比较详细 如有疑问欢迎留言

    public final class mLogUtils {
    
        private mLogUtils() {
            throw new UnsupportedOperationException("u can't instantiate me...");
        }
    
        private static final int V = 0x01;
        private static final int D = 0x02;
        private static final int I = 0x04;
        private static final int W = 0x08;
        private static final int E = 0x10;
        private static final int A = 0x20;
        private static final int JSON = 0xF2;
    
    /**
    *  注意:BuildConfig 导包时一定要导入 当前 Module 的包,导入其他包 BuildConfig.DEBUG的值将会一直为false
    */
    
        private static boolean isLog = BuildConfig.DEBUG; // log总开关  发布release版本时, BuildConfig.DEBUG 为false;
        private static String sGlobalTag = null; // log标签
        private static boolean sTagIsSpace = true; // log标签是否为空白
        private static boolean isLogBorder = true; // log边框开关
    
        private static final String TOP_BORDER = "┱┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄";
        private static final String LEFT_BORDER = "┃ ";
        private static final String BOTTOM_BORDER = "┹┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄";
        private static final String LINE_SEPARATOR = System.getProperty("line.separator");//等同"\n",没有 Windows和Linux的区别
        private static final int MAX_LEN = 1024; //单条log打印长度限制为 4*1024个字符长度 网上多把这个值设置为4000,经测试发现还是会丢失内容
        private static final String NULL_TIPS = "Log with null object.";
        private static final String NULL = "null";
        private static final String ARGS = "args";
    
        /**
         * @param contents 不需要输入Tag  以类名为Tag
         */
        public static void v(Object contents) {
            log(V, sGlobalTag, contents);
        }
    
        /**
         * @param tag      输入Tag
         * @param contents 打印内容
         */
        public static void v(String tag, Object... contents) {
            log(V, tag, contents);
        }
    
        public static void d(Object contents) {
            log(D, sGlobalTag, contents);
        }
    
        public static void d(String tag, Object... contents) {
            log(D, tag, contents);
        }
    
        public static void i(Object contents) {
            log(I, sGlobalTag, contents);
        }
    
        public static void i(String tag, Object... contents) {
            log(I, tag, contents);
        }
    
        public static void w(Object contents) {
            log(W, sGlobalTag, contents);
        }
    
        public static void w(String tag, Object... contents) {
            log(W, tag, contents);
        }
    
        public static void e(Object contents) {
            log(E, sGlobalTag, contents);
        }
    
        public static void e(String tag, Object... contents) {
            log(E, tag, contents);
        }
    
        public static void a(Object contents) {
            log(A, sGlobalTag, contents);
        }
    
        public static void a(String tag, Object... contents) {
            log(A, tag, contents);
        }
    
        public static void json(String contents) {
            log(JSON, sGlobalTag, contents);
        }
    
        public static void json(String tag, String contents) {
            log(JSON, tag, contents);
        }
    
    
        private static void log(int type, String tag, Object... contents) {
            if (!isLog) return;
            final String[] processContents = processContents(type, tag, contents);
            tag = processContents[0];
            String msg = processContents[1];
            switch (type) {
                case V:
                case D:
                case I:
                case W:
                case E:
                case A:
                    printLog(type, tag, msg);
                    break;
                case JSON:
                    printLog(D, tag, msg);
                    break;
            }
    
        }
    
    
        /**
         * @param type
         * @param tag
         * @param contents
         * @return
         */
        private static String[] processContents(int type, String tag, Object... contents) {
    
            //获取堆栈信息
            // 这里的数组的index=5是根据你工具类的层级做不同的定义,遍历之后就知道啦
            StackTraceElement[] targetElement = Thread.currentThread().getStackTrace();
            String fileName = targetElement[5].getFileName();
            String mTag = fileName.substring(0, fileName.indexOf("."));
            if (!sTagIsSpace) {// 如果全局tag不为空,那就用全局tag
                tag = sGlobalTag;
            } else {// 全局tag为空时,如果传入的tag为空那就显示类名,否则显示tag
                tag = isSpace(tag) ? mTag : tag;
            }
    
            String headMsg = new Formatter()//严格按(FileName:LineNuber)的格式来写 才可以定位
                    .format("Thread: %s, %s`(%s:%d)" + LINE_SEPARATOR,
                            Thread.currentThread().getName(),
                            targetElement[5].getMethodName(),
                            fileName,
                            targetElement[5].getLineNumber())
                    .toString();
    
            //打印内容部分
            String msg = NULL_TIPS;
            if (contents != null) {
                if (contents.length == 1) {//单个msg
                    Object object = contents[0];
                    msg = object == null ? NULL : object.toString();
                    if (type == JSON) {
                        msg = formatJson(msg);
                    }
                } else {//传入多个 “msg”
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0, len = contents.length; i < len; ++i) {
                        Object content = contents[i];
                        sb.append(ARGS)
                                .append("[")
                                .append(i)
                                .append("]")
                                .append(" = ")
                                .append(content == null ? NULL : content.toString())
                                .append(LINE_SEPARATOR);
                    }
                    msg = sb.toString();
                }
            }
            //拼接左边边宽
            if (isLogBorder) {
                StringBuilder sb = new StringBuilder();
                String[] lines = msg.split(LINE_SEPARATOR);
                for (String line : lines) {
                    sb.append(LEFT_BORDER).append(line).append(LINE_SEPARATOR);
                }
                msg = sb.toString();
    
            }
            return new String[]{tag, headMsg + msg};
        }
    
    
        /**
         * @param json 格式化json字符串
         * @return
         */
        private static String formatJson(String json) {
    //        Log.e("TAG", "formatJson: >>" + json);
            try {
                if (json.startsWith("{")) {
                    json = new JSONObject(json).toString(4);
                } else if (json.startsWith("[")) {
                    json = new JSONArray(json).toString(4);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return json;
        }
    
        /**
         * 打印完整日志
         *
         * @param type
         * @param tag
         * @param msg
         */
        private static void printLog(int type, String tag, String msg) {
    
            if (isLogBorder)//打印上边框
                printBorder(type, tag, true);
    
            //防止 日志长度超限 导致日志信息打印不全
            int len = msg.length();
            int countOfSub = len / MAX_LEN;
            int index = 0;
            if (countOfSub > 0) {
                String sub;
                for (int i = 0; i < countOfSub; i++) {
                    sub = msg.substring(index, index + MAX_LEN);
                    printSubLog(type, tag, sub);
                    index += MAX_LEN;
                }
                printSubLog(type, tag, msg.substring(index, len));
            } else {
                printSubLog(type, tag, msg);
            }
            if (isLogBorder)  //打印下边框
                printBorder(type, tag, false);
        }
    
        /**
         * 打印日志内容
         *
         * @param type
         * @param tag
         * @param msg
         */
        private static void printSubLog(final int type, final String tag, String msg) {
            if (isLogBorder)
                msg = LEFT_BORDER + msg;
            switch (type) {
                case V:
                    Log.v(tag, msg);
                    break;
                case D:
                    Log.d(tag, msg);
                    break;
                case I:
                    Log.i(tag, msg);
                    break;
                case W:
                    Log.w(tag, msg);
                    break;
                case E:
                    Log.e(tag, msg);
                    break;
                case A:
                    Log.wtf(tag, msg);
                    break;
            }
        }
    
        /**
         * 打印日志边框
         *
         * @param type
         * @param tag
         * @param isTop
         */
        private static void printBorder(int type, String tag, boolean isTop) {
            String border = isTop ? TOP_BORDER : BOTTOM_BORDER;
            switch (type) {
                case V:
                    Log.v(tag, border);
                    break;
                case D:
                    Log.d(tag, border);
                    break;
                case I:
                    Log.i(tag, border);
                    break;
                case W:
                    Log.w(tag, border);
                    break;
                case E:
                    Log.e(tag, border);
                    break;
                case A:
                    Log.wtf(tag, border);
                    break;
            }
        }
    
        private static boolean isSpace(String s) {
            if (s == null) return true;
            for (int i = 0, len = s.length(); i < len; ++i) {
                if (!Character.isWhitespace(s.charAt(i))) {
                    return false;
                }
            }
            return true;
        }
    }

    欢迎留言建议。只要学不死 就往死里学! ——by luk

    展开全文
  • 再点击页面右上角“三个点”,选择“设置”,将“允许志愿龙口使用我的位置信息”打开。2、怎样将“志愿龙口”小程序添加到手机桌面?答:在小程序首页,点击右上角“三个点”,选择“添加到桌面”。(苹果手机无法...
    4d7d7beeebd76ae4f3217a17f193ecad.png问答时间6fb95b2e2ee0488698ed7e84572ec9b8.gif7143d7bc938ce930966e696ee5c5ba6f.gifd56850ae2bfc1a4f28457ad52414bf92.png

    1、创建活动地点或签到时,弹出是否允许小程序使用手机GPS权限时不小心点了否,导致无法定位怎么办?

    答:在小程序首页,点击右上角“三个点”,选择“关于志愿龙口”;再点击页面右上角“三个点”,选择“设置”,将“允许志愿龙口使用我的位置信息”打开。

    2、怎样将“志愿龙口”小程序添加到手机桌面?

    答:在小程序首页,点击右上角“三个点”,选择“添加到桌面”。(苹果手机无法添加到桌面)

    3、如果之前在龙口(山东)志愿网注册过,还用新注册吗?怎样登陆?

    答:在龙口(山东)志愿网注册过的可以继承之前的账号,账号名即为之前的账号名,密码为注册人出生年月日八位数字(例如19990201)。

    4、为什么找不到在龙口(山东)志愿网加入的团队了?

    答:因为这是个全新的平台,只继承了个人信息及时长等,之前的团队未导入,需要重新建立或加入团队。

    5、活动时长的单位是什么?

    答:1时长=1小时。

    6、未加入团队可以参加活动吗?

    答:可以。

    7、活动过了报名时间后还可以报名参加该活动吗?

    答:不可以。

    8、可以同时参加多个活动吗?

    答:可以,但如果活动时间有重叠,则只有一个活动可以签到。

    9、活动签到签退时,必须严格按照规定的时间吗?

    答:可以提前10分钟签到和签退,还有10分钟活动结束时会弹出窗口提示签退,超过签退时间十分钟内可以签退,超出十分钟后无法签退,不计时长(可提前签退)。

    10、如果有事要提前结束活动,可以提前签退吗?

    答:可以提前签退,时长计算为签到至签退的时间。

    11、小程序端可以加入或创建团队吗?

    答:暂时不可以,后续可能加入该功能。

    12、小程序端可以创建活动吗?

    答:可以,但仅限管理员。

    13、活动开始一段时间后可以签到吗?

    答:可以签到,时长从签到时开始计算。

    14、忘记账号名怎么办?

    答:联系管理员登陆山东志愿网,通过身份证查询用户名。

    15、补全信息时必须全部填写才能提交吗?

    答:必须全部填写。

    16、注册时注册名最少为几个字符?

    答:最少为四个字符(中文英文均为四个以上)。

    17、如果把小程序关闭,代不代表已签退?

    答:不代表签退,必须点击签退键才会签退。

    18、如果活动去晚了,还能不能签到?

    答:可以签到,时长从签到时开始计算。

    19、如果一次活动有多个活动地点,如何设置签到地点?

    答:这种情况只能分开创建为多个活动,签到地点只能是一个。

    20、弹出“服务器错误,小程序暂时无法使用”怎么办?

    答:不影响使用,网络状况不良造成的,点击确定即可。

    21、为什么在电脑网页创建了活动后,无法在小程序进行签到签退?

    答:在电脑端创建活动时,是无法进行定位签到地点的,需要通过小程序端,活动界面的管理按钮里有一个设置签到地点,进行设置即可。

    21、活动发起者签退后,还有人没签退的话还可以签退么?

    答:还可以进行签退,但是发起者提交活动报告后,则没签退的人员就不能签退了。

    195edc2bfc8c02a988d847db80200fe3.png

    40c89dfe9a869f166d7fe404d6153bb2.png

    展开全文
  • PHP动态网站开发插件

    2013-06-18 22:47:24
    定位层的横向流动,不管浏览器横向大小怎样变化,该层均不会改变位置。 Popup Message.mxp Download 点击下载 在“提交”按钮上添加注释。 Compare Fields.mxp Download 点击下载 对比两个表单的内容是否相同,多...
  • 2.3.4. 工作副本怎样跟踪版本库 2.4. 摘要 3. 版本库 3.1. 创建版本库 3.1.1. 使用命令行工具创建版本库 3.1.2. 使用 TortoiseSVN 创建版本库 3.1.3. 本地访问版本库 3.1.4. 访问网络共享磁盘上的版本库 3.1.5. 版本...
  • 用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格中的组合 求拆解合并公式 如何把字母和数字分开? 把...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格中的组合 求拆解合并公式 如何把字母和数字分开? 把...
  • 目录 译者序 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书组织结构 Subversion 1.1的新特性,svn客户端和linux下命令行。 目录 1. 简介 1.1. 什么是 TortoiseSVN? 1.2. TortoiseSVN 的历史 1.3. ...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0056 为程序设置版本和帮助信息 36 0057 动态链接库的创建与调用 36 0058 String类型和Pchar类型的用法和区别 36 0059 如何捕获异常 37 0060 TStrings与TStringList的使用 37 0061 如何实现窗体文件转换...
  • 怎样设置栈的大小 如何知道GetLastError()返回的错误代码的意义 如何使用Visual C++ 6.0中的快捷键 Visual C++ 6.0工程中的项目文件都表示什么 第2章 Visual C++ 6.0编程基础 什么是匈牙利命名法 Windows编程中的...
  • 实例040 设置窗体在屏幕中的位置 50 实例041 始终在最上面的窗体 51 1.12 设置窗体大小 52 实例042 限制窗体大小 52 实例043 获取桌面大小 53 实例044 组件大小随窗体的改变而改变 53 实例045 在窗口间...
  • 实例038 设置窗体在屏幕中的位置 40 实例039 始终在最上面的窗体 41 1.12 设置窗体大小 42 实例040 限制窗体大小 42 实例041 获取桌面大小 42 实例042 在窗口间移动按钮 43 实例043 如何实现Office助手...
  • 深入浅出MySQL数据库开发、优化与管理维护

    千次下载 热门讨论 2014-01-21 15:48:01
     1.5 小结 显示全部信息第1部分 基础篇  第1章 MySQL的安装与配置   1.1 MySQL的下载   1.1.1 在Windows平台下下载MySQL   1.1.2 在Linux平台下下载MySQL   1.2 MySQL的安装   1.2.1 在Windows...
  • windowsnt 技术内幕

    2014-04-09 20:47:17
    考试编号的识别 课程内容和考试内容的对照 理解微软的MCSE长远考虑 理解微软出题的方式 使用本书帮助备考 在Internet上寻找对考试有帮助的信息 寻求微软认可的课程指导 寻找高质量的和三方帮助 寻找可利用的评估软件...
  • 100. 移动定位业务(LCS业务)采用哪三种移动定位技术? 75 101. 初期定位业务主要有哪些?这些业务对定位精度有什么要求? 76 102. 通过Cell-ID方式的定位过程中HLR如何找到了MS 78 103. 针对3G的商用定位业务是否...
  • C#.net_经典编程例子400个

    热门讨论 2013-05-17 09:25:30
    39 1.11 设置窗体位置 40 实例038 设置窗体在屏幕中的位置 40 实例039 始终在最上面的窗体 41 1.12 设置窗体大小 42 实例040 限制窗体大小 42 实例041 获取桌面大小 42 实例042 ...
  • MYSQL网络数据库PDF学习资源

    热门讨论 2009-08-09 19:56:31
    7.4.1 设置CGI脚本的Apache 235 7.4.2 CGI.pm的简要介绍 236 7.4.3 从Web脚本连接到MySQL服 务器 239 7.4.4 samp_db数据库浏览器 240 7.4.5 学分保存方案分数浏览器 243 7.4.6 历史同盟共同兴趣的搜索 246 第8章 ...
  • visio教程PDF

    热门讨论 2010-05-17 23:56:22
    16.1.3 改变Size&Position窗口位置 16.2 改变图形大小 16.2.1 点击拖动方法 16.2.2 使用数字控制改变大小 16.3 图形比例 16.4 移动图形 16.4.1 旋转图形 16.4.2 韶转图形 16.4.3 拖动图形 ...
  • 5.2 实例:使用Eclipse设置简单资源 75 5.3 使用资源 78 5.3.1 使用String(字符串)资源 79 5.3.2 使用格式化的String资源 80 5.3.3 使用String数组 81 5.3.4 使用颜色 82 5.3.5 使用尺寸 82 5.3.6 ...
  • 这一节只讲述怎样在其 上的菜单栏里添加菜单和图标。 1.新建Qt4 Gui Application 工程,将工程命名为MainWindow,其他选项默认 即可。 生成的窗口界面如下图。其中最上面的为菜单栏。 2.我们在Type Here 那里双击,...
  • 实例038 设置窗体在屏幕中的位置 40 实例039 始终在最上面的窗体 41 实例040 从桌面右下角显示的窗体 41 1.12 设置窗体大小 43 实例041 获取桌面大小 43 实例042 在窗口间移动按钮 44 实例043 如何实现Office助手 45...
  • C#程序开发范例宝典(第2版).part02

    热门讨论 2012-11-12 07:55:11
    实例038 设置窗体在屏幕中的位置 40 实例039 始终在最上面的窗体 41 实例040 从桌面右下角显示的窗体 41 1.12 设置窗体大小 43 实例041 获取桌面大小 43 实例042 在窗口间移动按钮 44 实例043 如何实现Office...
  • C#程序开发范例宝典(第2版).part13

    热门讨论 2012-11-12 20:17:14
    实例038 设置窗体在屏幕中的位置 40 实例039 始终在最上面的窗体 41 实例040 从桌面右下角显示的窗体 41 1.12 设置窗体大小 43 实例041 获取桌面大小 43 实例042 在窗口间移动按钮 44 实例043 如何实现Office...
  • Microsoft C# Windows程序设计(上下册)

    热门讨论 2011-08-05 10:28:13
    7.4 打印机的情况怎样? 7.5 手工转换 7.6 页单位和页缩放 7.7 画笔的宽度 7.8 页面变换 7.9 保存图形状态 7.10 可度量大小 7.11 任意坐标 7.12 哪些事情不能做 7.13 世界坐标变换 7.14 总结 ...
  • 实例038 设置窗体在屏幕中的位置 40 实例039 始终在最上面的窗体 41 实例040 从桌面右下角显示的窗体 41 1.12 设置窗体大小 43 实例041 获取桌面大小 43 实例042 在窗口间移动按钮 44 实例043 如何实现Office...
  • 实例038 设置窗体在屏幕中的位置 40 实例039 始终在最上面的窗体 41 实例040 从桌面右下角显示的窗体 41 1.12 设置窗体大小 43 实例041 获取桌面大小 43 实例042 在窗口间移动按钮 44 实例043 如何实现Office...
  • 程序开发范例宝典>>

    2012-10-24 10:41:28
    实例038 设置窗体在屏幕中的位置 40 实例039 始终在最上面的窗体 41 实例040 从桌面右下角显示的窗体 41 1.12 设置窗体大小 43 实例041 获取桌面大小 43 实例042 在窗口间移动按钮 44 实例043 ...
  • 实例038 设置窗体在屏幕中的位置 40 实例039 始终在最上面的窗体 41 实例040 从桌面右下角显示的窗体 41 1.12 设置窗体大小 43 实例041 获取桌面大小 43 实例042 在窗口间移动按钮 44 实例043 如何实现...

空空如也

空空如也

1 2 3
收藏数 57
精华内容 22
关键字:

怎样设置定位位置信息