关于API函数SystemParametersInfo()的问题!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于API函数SystemParametersInfo()的问题!相关的知识,希望对你有一定的参考价值。

我想用VC++编写一个自动换壁纸的程序,可是遇到了问题!

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "F:\\Jack小鸡\\小鸡的图片\\巴萨夺冠.bmp", SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE);

上面的代码可以设置桌面背景,但是貌似用JPG格式的图片就不行了!还有,我发现用这个函数设置桌面背景只能用“居中”模式,如何设置“拉伸”模式和“平铺”模式呢?

还有,如何让这个函数支持JPG呢?谢谢大家!请帮帮小弟!

参考技术A 这个函数无法支持JPG,要做到支持JPG,除非你自己实现。

另外,也没有参数支持平铺和拉伸。WINDOWS是一个视窗系统,并不是所有的配置都可以用传参来搞定吧。

关于百度地图js api的getCurrentPosition定位不准确的解决方法

很久之前帮大叔解决了一个gps坐标转换为百度地图坐标的问题。今天大叔又给我讲百度地图定位不准。我查了一下api,用了官方给出的这样一组函数。

 1 //创建查询对象
 2 var geolocation = new BMap.Geolocation();
 3 
 4 //调用getCurrentPosition函数
 5 geolocation.getCurrentPosition(function (position) {
 6 
 7     //如果查询成功
 8     if (this.getStatu() == ‘BMAP_STATU_SUCCESS‘) {
 9 
10         //根据point对象创建标记遮挡物,并添加到地图中
11         var marker = new BMap.Marker(position.point);
12         map.addOverlay(marker);
13 
14         //将地图中心设置为获得的当前位置
15         map.panTo(position.point)
16     }
17 })

 

我自己试的完全不行,和实际地址偏差很大,偏差有几公里,这肯定是不行的。所以我在网上查资料知道了百度地图的定位都是有偏移量的。

当然我最终的解决方案并非通过这个api然后去掉偏移量,我是用另一种方法。

也就是用html5自带的定位。之前我给大叔解决的问题就是把gps坐标转换为百度地图坐标,所以我就想html5的定位获取的是不是gps坐标。

事实证明这是可以的。

 

也就是说,不使用百度自身提供的api,而使用html5的api,并把得到的结果去用百度的转换坐标的api去转换一下。这话说着听绕口的。

1、调用navigator.geolocation.getCurrentPosition(callback); 函数

2、注册回调函数,在回调函数中调用百度的坐标转换的api,这个api大叔知道,我没有细查,只知道能通过url去请求并注册一个回调,但是BMap提供了一个这样的函数,我这里先假设是convgps(x,y,from,to,callback);

     这几个参数是什么意思呢

     x:经度

     y:纬度

     from:要转换的坐标类型,百度官网有1为国际gps坐标,2为国际gps米度坐标,这个可以去官网看,取值范围是1-7

     to:要转换成的坐标类型,只能是5或者6,5为百度地图坐标,6为百度地图米度坐标(别问我什么是米度坐标,我不知道...)

     callback:回调

     当然这里只是假设是这样的。

3、在convgps的回调中注册,使用转换好的经纬度创建一个marker并将地图中心放在这个经纬度上,也就是和前面代码一样的 

 

 

 注意,以下代码请勿直接使用,只是提供一个思路的代码,因为我没有去查那个函数的名字。

 1 navigator.geolocation.getCurrentPosition(function (position) {
 2 
 3     //得到html5定位结果
 4     var x = position.coords.longitude;
 5     var y = position.coords.latitude;
 6 
 7     //由于html5定位的结果是国际标准gps,所以from=1,to=5
 8     //下面的代码并非实际是这样,这里只是提供一个思路
 9     BMap.convgps(x, y, 1, 5, function (convRst) {
10         var point = new BMap.Point(convRst.x, convRst.y);
11 
12         //这个部分和上面的代码是一样的
13         var marker = new BMap.Marker(point);
14         map.addOverlay(marker);
15         map.panTo(point);
16     })
17 
18 })

 

以上是关于关于API函数SystemParametersInfo()的问题!的主要内容,如果未能解决你的问题,请参考以下文章

关于 API

关于API?

windows API 关于CreateWindowEX CreateThread和获取windows时间等问题

关于web3.js中与交易发送交易签名智能合约函数调用相关api的理解

关于语法的问题

关于百度地图js api的getCurrentPosition定位不准确的解决方法