第六章 API应用(上篇)

1、网络API

       微信小程序处理的数据通常从后台服务器获取,再将处理过的结果保存到后台服务器,这就要求微信小程序要有与后台进行交互的能力。微信原生 API接口或第三方 API提供了各类接口实现前后端交互。

       网络 API 可以帮助开发者实现网络URL访问调周用、文件的上传和下载、网络套接字的使用等功能处理。微信开发团队提供了10个网络A API接口。

wx. request(Object)接口用于发起 HTTPS请求。

wx.uploadFile(Object)接口用于将本地资源上传到后台服务器。

wx. downloadFile(Object) 接口用于下载文件资源到本地。

wx. connectSocket( Object)接口用于创建一个WebSocket连接。

wx. sendSocketMessage(Object)接口用于实现通过WebSocket连接发送数据。

wx. closeSocket(Object)接口用于关闭WebSocket连接。

wx.onSocketOpen(CallBack)接口用于监听WebSocket连接打开事件。

wx. onSocketError( CallBack)接口用于监听WebSocket错误。

wx.onSocketMessage(CallBack)接口用于实现监听WebSocket接收到服务事件。

wx. onSocketClose(CallBack)接口用于实现监听WebSocket关闭。

(1)、发起网络请求

         wx. request(Object)实现向服务器发送请求、获取数据等各种网络交互操作,其相关参数如表所示。一个微信小程序同时只能有5个网络请求连接,并且是HTTPS 请求。

       例如,通过wx.request(Object)获取百度(https://www.baidu.com)首页的数据。(需要在微信公众平台小程序服务器配置中的request合法域名中添加“https://www.baidu.com”.)

     实例代码:

index.wxml代码:

<button type="primary"bindtap ="getbaidutap">获取 HTML 数据</button>
<textarea value ='{{html}}'auto-heightmaxlength ='0'> </textarea>

index.js代码:

Page({
  data:{
html:""
  },
getbaidutap:function(){
var that = this;
wx.request({
url:'https://www.baidu.com',
data:{},
header:{'Content-Type':'application/json'},
success:function(res){
console.log(res);
that.setData({
html:res.data
})
}
  })
}
})

运行结果:

       例如,通过wx.request(Object)的GET方法获取邮政编码对应的地址信息。示例代码如下:  

index.wxml代码:

<view>邮政编码:</view >
<input type="text" bindinput="input" placeholder='6位邮政编码'/>
<button type="primary" bindtap="find">查询</button>
<block wx:for="{{address}}">
<block wx:for="{{item}}"><text>{{item}}</text></block>
</block >

index.js代码:

Page({
  data:{
  postcode:"",
  address:[],//邮政编码对应的地址
  errMsg:"",
  error_code:-1//错误码
  },
  input:function(e){//输入事件
    this.setData({
  postcode:e.detail.value,
    })
  console.log(e.detail.value)
    },
  find:function(){//查询事件
  var postcode =this.data.postcode;
  if(postcode!=null&& postcode!=""){
  var self =this;
  //显示 toast 提示消息
  wx.showToast({
    title:'正在查询,请稍候....',
  icon: 'loading',
  duration:10000
  });
  wx.request({
  url:'https://v.juhe.cn/postcode/query',
  //第三方后台服务器
  data :{
   ' postcode' :postcode,
  'key':'0ff9bfccdf147476e067de994eb5496e'
  },
  header :{
  'Content-Type ':'application/json',
  },
  method:'GET',//方法为GET
  success:function(res){
    wx.hideToast();//隐藏toast
    if(res.data.error_code==0){
  console.log(res);
  self.setData({
  errMsg:"",
  error_code:res.data.error_code,//错误代码
  address:res.data.result.list//获取到的数据
  })
}
  else{
  self.setData({
  errMsg:res.data.reasonllres.data.reason,//错误原因分析
  error_code:res.data.error_code
  })
  }
  }
  })
  }
  }
  })

运行结果:

(2)、上传文件

       wx. uploadFile(Object)接口用于将本地资源上传到开发者服务器,并在客户端发起一个 HTTPS POST请求,其相关参数如表所示:

 例如,通过wx.uploadFile(Object),可以将图片上传到服务器并显示。示例代码如下:

示例代码如下:

index.wxml代码:

<button type="primary"bindtap="uploadimage">上传图片</button ><image src="../img/d.jpg"mode="widthFix" /

index.js代码:

Page({
  data:{
  img :null,
  uploadimage:function(){
  var that =this;
  //选择图片
  wx.chooseImage({
  success:function(res){
    var tempFilePaths =res.tempFilePaths
    upload(that,tempFilePaths);
  }
  })
  function upload(page,path){
  //显示toast提示消息
  wx.showToast({
  icon:"loading",
  title:"正在上传"
  }),
  wx.uploadFile({
  url:"http://localhost/",
  filePath:path[0],
  name:'file',
  success:function(res){
  console.log(res);
  if(res.statusCodel=200){
  wx.showModal({
  title:'提示',
  content:'上传失败',
  showCancel:false
  })
  return;
  }
  var data =res.data
  page.setData({ //上传成功修改显示头像
    img:path[0]
  })
  },
  fail:function(e){
  console.log(e);
  wx.showModal({
  title:'提示',
  content:'上传失败',
  showCancel:false
  })
  },
  complete:function(){//隐藏 Toast
  wx.hideToast();
  }
  })
  }
  }
  }
  })

运行结果:

(3)、下载文件

        wx.downloadFile( Object)接口用于实现从开发者服务器下载文件资源到本地,在客户端直接发起一个HTTP GET请求,返回文件的本地临时路径。其相关参数如表所示:

例如,通过wx.downloadFile(Oh bject)实现从服务器中下载图片,后台服务采用WAMP软件在本机搭建。
示例代码如下:

index.wxml代码:

  <button type="primary" bind:tap="downloadimge">下载图像</button>
<image src="{{img}}"mode='widthFix'style = "width:90%;height:500px"></image>

index.js代码:

Page({
  data:{
    img:null,
  },
  downloadimage:function(){
    var that = this;
    wx.downloadFile({
      url: "http://localhost/1.jpg", //通过WAMP软件实现
      success:function(res){
        console.log(res)
        that.setData({
          img:res.tempFilePath
        })
      }
    })
  }
 })

运行结果:

2、多媒体API

      多媒体API主要包括图片API、录音API、音频播)放控制API、音乐播放控制API等,其目的是丰富小程序的页面功能。

(1)、图片API

图片API实现对相机拍照图片或本地相册图片进行处理,主要包括以下4个API接口:

wx. chooseImage(Object)接口用于从本地相册册选择图片或使用相机拍照。

wx. previewImage(Object)接口用于预览图片

wx. getImageInfo( Object)接口用于获取图片信信息。

wx. saveImageToPhotosAlbum(Object)接口用于于保存图片到系统相册。  

1、选择图片或拍照

wx. chooseImage(Object)接口用于从本地相册选择图片或使用相机拍照。拍照时产生的
临时路径在小程序本次启动期间可以正常使用若要持久保存,则需要调用wx.saveFile保    
存图片到本地。其相关参数如表所示:

       若调用成功,则返回tempFilePaths 和 tempFiles,tempFilePaths表示图片在本地临时文件路径列表。tempFiles表示图片的本地文件列表,包括path 和 size。
示例代码如下:

wx.chooseImage({
count:2,//默认值为9
sizeType:['original','compressed'],
sourceType:['album','camera'],
success:function(res){
var tempFilePaths =res.tempFilePaths
var tempFiles =res.tempFiles;
console.log(tempFilePaths)
console.log(tempFiles)
}
})

2、预览图片
wx. previewImage(Object)接口主要用于预览图片,其相关参数如表所示:

示例代码如下:

Page({
  current:"http://....ni.com/././02.png",
  urls:["http://....ni.com/././02.png"],
  http://....ni.com/././02.png,
  http://....ni.com/././02.png
})

3、获取图片信息

wx.getImageInfo(Object) 接口用于获取图片信息,其相关参数如表所示:

示例代码如下:

wx.chooseImage({
success:function(res){
wx.getImageInfo({
src:res.tempFilePaths[0], 
success:function(e){ 
console.log(e.width) 
console.log(e.height)
}
})
},
})

4、保存图片到系统相册
     wx.savelmageToPhotosAlbum( Object)接口用于保存图片到系统相册,需要得到用户授权 scope. writePhotosAlbum。其相关参数如表所示:

示例代码如下:

  wx.chooseImage({
    success:function(res){
      wx.saveImageToPhotosAlbum({
        filePath: 'res.TempFilePath[0]',
        success:function(e){
          console.log(e)
        }
      })
    },
  })
(2)、录音API

      录音API提供了语音录制的功能,主要要包括以下两个API接口: wx.startRecord(Object)接口用于实现开始录音。
     wx. stopRecord( Object)接口用于实现主动调用停止录音。
1、开始录音
     wx. startRecord(Object)接口用于实现开始录音。当主动调用wx.stopRecord(Object)接口或者录音超过1分钟时,系统自动结束录音,并返回录音文件的临时文件路径。若要持久保存,则需要调用wx.saveFile()接口。其相关参数如表所示:

2、停止录音
   wI stopRecord( Object)接口用于实现主动调用停止录音。

示例代码如下:

wx.startRecord)
({
success: function(res){
var tempFilePath= res.tempFilePath},
fail: function(res){
//录音失败
}
})
setTimeout(function(){//结束录音
wx.stopRecord()
},10000)
(3)、 音频播放控制API

     音频播放控制API主要用于对语音媒体文件的控制,包括播放、暂停、停止及audio组件的控制,主要包括以下3个API:

wx.playVoice(Object)接口用于实现开始播放语音。

wx.pauseVoice(Object)接口用于实现暂停正在播放的语音。

wx.stopVoice(Object)接口用于结束播放语音。
1、播放语音
       wx. playVoice( Object)接口用于开始播放语音,同时只允许一个语音文件播放,如果前一个语音文件还未播放完,则中断前一个语音文件的播放。其相关参数如表所示:

 示例代码如下:

wx.startRecord({
success: function(res){
var tempFilePath= res.tempFilePath wx.playVoice({//录音完后立即播放
filePath:tempFilePath, complete:function(){
}
})
}
})

2、暂体播放
      wx. pauseVoice( Object)用于暂停正在播放的语音。再次调用wx.playVoice ( Object)播放同一个文件时,会从暂停处开始播放。如果想人从头开始播放,则需要先调用wx.stopVoice(Object)。
    示例代码如下:

wx.startRecord({
success: function(res){
var tempFilePath = res.tempFilePath
wx.playVoice({ filePath:tempFilePath
})
 
setTimeout(function(){
//暂停播放
wx.pauseVoice()},5000)
}
})

3、结束播发

wx.stopVoice(Object)用于结束播放语音

    示例代码如下:

wx.startRecord({
success: function(res){
var tempFilePath =res.tempFilePath wx.playVoice({
filePath:tempFilePath})
 
setTimeout(function(){
 wx.stopVoice()},5000)
}
})
4、音乐播放控制API

   音乐播放控制API主要用于实现对背景音乐的控制,音乐文件只能是网络流媒体,不能是本地音乐文件。音乐播放控制API主要包括以下8个API:

wx. playBackgroundAudio(Object)接口用于播放音乐。

wx. getBackgroundAudioPlayerState(Object)接口用于获取音乐播放状态。

wx. seekBackgroundAudio(Object)接口用于定位音乐播放进度。

wx. pauseBackgroundAudio()接口用于实现暂停播放音乐。

wx. stopBackgroundAudio( )接口用于实现停止播放音乐。

wx. onBackgroundAudioPlay(CallBack)接口用于实现监听音乐播放。

wx. onBackgroundAudioPause(CallBack)接口用于实现监听音乐暂停。

wx. onBackgroundAudioStop(CallBack)接口用于实现监听音乐停止。

1、播放音乐

     wx. playBackgroundAudio(Object)用于播放音乐,同一时间只能有一首音乐处于播放状态,其相关参数如表所示:

     示例代码如下:

wx.playBackgroundAudio({
dataUrl: 'http://bmob - cdn -16488.b0.upaiyun.com/2018/02/
09 /117e4a1b405195b18061299e2de89597.mp3',
title:'有一天',
coverImgUrl:'http://bmob-cdn-16488.b0.upaiyun.com/2018/
02 /09/f604297140c9681880cc3d3e581f7724.jpg',
success:function(res){
console.log(res)/成功返回playBackgroundAudio:ok
}
})

2、获取音乐播放状态
    wx. getBackgroundAudioPlayerState(Object)    接口用于获取音乐播放状态,其相关参数如    
表所示:

     示例代码如下:

wx.getBackgroundAudioPlayerState({
  success:function(res){
    var status=res.status
    var dataUrl=res.dataUrl
    var currentPosition=res.currentPosition
    var duration=res.duration
    var downloadPercent=res.downloadPercent
    console.log("播放状态:"+status)
    console.log("音乐文件地址:"+dataUrl)
    console.log("音乐文件当前播放位置"+currentPosition)
    console.log("音乐文件的长度:"+duration)
    console.log("音乐文件的下载速度"+downloadPercent)
  }
})

3、控制音乐播放进度

    wx.seekBackgroundAudio(Object)接口用于控制音乐播放进度,相关参数如表所示:

     示例代码如下:

wx.seekBackgroundAudio({
position:30
})

4、暂停播放音乐

    wx.pauseBackgroundAudio()接口用于暂停播放音乐

     示例代码如下:

wx.playBackgroundAudio({
  dataUrl: '/music/a.mp3',
  title:'我的音乐',
  coverImgUrl:'/images/poster.jpg',
  success:function(){
    console.log('开始播放音乐了');
  }
});
setTimeout(function(){
  console.log('暂停音乐');
  wx.pauseBackgroundAudio();
},5000)//五秒后自动暂停

5、停止播放音乐

wx.stopBackgroundAudio()接口用于停止播放音乐

     示例代码如下:

wx.playBackgroundAudio({
  dataUrl: '/music/a.mp3',
  title:'我的音乐',
  coverImgUrl:'/images/poster.jpg',
  success:function(){
    console.log('开始播放音乐了');
  }
});
setTimeout(function(){
  console.log('暂停音乐');
  wx.stopBackgroundAudio();
},5000)//五秒后自动暂停

6、监听音乐播放
     wx.onBackgroundAudioPlay( Ca allBack)接口用于实现监听音乐播放,通常被wx.playBack- groundAudio( Object)方法触发,在 CallBack 中可改变播放图标。
示例代码如下:

wx.playBackgroundAudio({
  dataUrl: this.data.musicData.dataUrl,
  title:this.data.musicData.title,
  coverImgUrl:this.data.musicData.coverImgUrl,
  success:function(){
    wx.onBackgroundAudioStop(function(){
      that.setData({
        isPlayingMusic:false
      })
})

7、监听音乐暂停
wx. onBackgroundAudioPause(CallBack)接口用于实现监听音乐暂停,通常被wx.pause- BackgroundAudio( )方法触发。在CallBack中可以改变播放图标。

8.监听音乐停止

wx. onBackgroundAudioStop(CallBack)接口用于实现监听音乐停止,通常被音乐自然播放停止或wx.seekBackgroundAudio(Object)方法导致播放位置等于音乐总时长时触发。在CallBack中可以改变播放图标。

9.案例展示  

在此,以小程序music为案例来展示音乐API的使用。该小程序的4个页面文件分别为music.wxml、music.wxss、music. json    图6-5 音乐播放示例和music.cojs。

实例代码如下:

index.wxml代码:

<view class="container">
<image class="bgaudio"src = "{{changedImg? music.coverImg:'../img/d.jpg'}}"/>
<view class ="control-view">
<!--使用data-how定义一个0表示快退10秒-->
<image src ="../img/f.jpg"bindtap="onPositionTap"data-how= "0 "/>
<image src = "../img/{{isPlaying?'pause':'d'}}.jpg" bindtap = "onAudioTap"/>
<image src ="../img/f.jpg"bindtap = "onStopTap"/><!--使用data-how定义一个1表示快进10秒-->
<image src ="../img/d.jpg"bindtap ="onPositionTap"data-how = "1"/>
</view >
</view >

index.wxss代码:

.bgaudio{
  height:350rpx; width:350rpx;
  margin-bottom:100rpx;
}
  .control-view image{ 
  height:64rpx;
     width:64rpx; 
     margin:30rpx;
}

index.js代码:

Page({
  data:{
   //记录播放状态
  isPlaying:false,
  //记录coverImg,仅当音乐初始时和播放停止时,使用默认的图片。播放中和暂停时,都使用当前音乐的图片
  coverImgchangedImg:false,	
  //音乐内容 
  music:{
  "url":"../yy/松紧先生(李宗锦) - 你走 (Demo).flac",
  "title":"盛晓玫-有一天",
  "coverImg":
  "../yy/松紧先生(李宗锦) - 你走 (Demo).flac"
  	},
  },	
  onLoad:function(){	
  	//页面加载时,注册监听事件	
  	this.onAudioState();	
  	},	
//点击播放或者暂停按钮时触发
	onAudioTap:function(event){	
  if(this.data.isPlaying){
  //如果在正常播放状态,就暂停,并修改播放的状态
  	wx.pauseBackgroundAudio();	
  	}else{	
 //如果在暂停状态,就开始播放,并修改播放的状态28 
 let music = this.data.music;
  	wx.playBackgroundAudio({	
  	dataUrl: music.url,	
  	title: music.title,	
  	coverImgUrl:music.coverImg	
    })	
  }
},
//点击即可停止播放音乐	
	onStopTap:function(){	
   let that = this;
	wx.stopBackgroundAudio({	
	success:function(){	
	//改变coverImg和播放状态	
  that.setData({ isPlaying:false,changedImg:false});
  }
})	
},
 //点击“快进10秒”或者“快退10秒”时,触发
	onPositionTap:function(event){	
 let how = event.target.dataset.how;//获取音乐的播放状态
	wx.getBackgroundAudioPlayerState({	
	success:function(res){	
//仅在音乐播放中,快进和快退才生效	
//音乐的播放状态,1表示播放中54 
let status = res.status;
 if(status === 1){//音乐的总时长
let duration = res.duration;//音乐播放的当前位置
let currentPosition = res.currentPosition;
if(how ==="0"){
//注意:快退时,当前播放位置快退10秒小于0时,直接设置position为1;否则,直接减去10秒//快退到达的位置
let position = currentPosition - 10;
if(position <0){
position =1;//执行快退	
}
wx.seekBackgroundAudio({	
position: position	
});	
//给出一个友情提示,在实际应用中,请删除!!!
wx. showToast({title:"快退10s",duration:500});
}	
if(how === "1"){//注意:快进时,当前播放位置快进10秒后大于总时长时,直接设置position 为总时长减1
//快进到达的位置
let position =currentPosition +10;
if(position >duration){
position =duration-1;//执行快进	
}
wx.seekBackgroundAudio({	
position: position});//给出一个友情提示,在实际应用中,请删除!!!
wx.showToast({ title:"快进10s",duration:500});
}	
}else {	//给出一个友情提示,在实际应用中,请删除!!!
wx.showToast({title:"音乐未播放",duration:800});	
  }	
}
})
},//音乐播放状态	
onAudioState:function(){	
let that =this;
wx.onBackgroundAudioPlay(function(){//当wx.playBackgroundAudio()执行时触发101 //改变coverImg和播放状态
that.setData({ isPlaying:true,changedImg:true});	
console.log("on play");	
});	
wx.onBackgroundAudioPause(function(){	//当wx.pauseBackgroundAudio()执行时触发//仅改变播放状态
that.setData({isPlaying:false});
console.log("on pause");	
});	
wx.onBackgroundAudioStop(function(){	//当音乐自行播放结束时触发//改变coverImg和播放状态
that.setData({isPlaying:false,changedImg:false});	
console.log("on stop");	
});	
}
})

index.json代码:

{

}

运行结果:

 

3、文件API

        从网络上下载或录音的文件都是临时保存的,若要持久保存,需要用到文件API。文件 API提供了打开、保存、删除等操作本地文件的能力,主要包括以下5个API接口:
wx. saveFile(Object)接口用于保存文件到本地。
wx. getSavedFileList(Object)接口用于获取本地已保存的文件列表。 wx. getSaveFileInfo( Object)接口用于获取本地文件的文件信息。 wx. removeSaveFile(Object)接口用于删除本地存储的文件。
wx. openDocument(Object)接口用于新开页面打开文档,支持格式:doc、xls、 ppt、pdf、docx、xlsx、ppts。
1、保存文件
wx. saveFile(Object)用于保存文件到本地,其相关参数如表所示:

实例代码如下:

saveImg:function(){
  wx.chooseImage({
    count:1,
    sizeType:['original','compressed'],
    sourceType:['album','camera'],
    success:function(res){
      var tempFilePaths=res.tempFilePaths[0]
      wx.saveFile({
        tempFilePaths:tempFilePaths,
        success:function(res){
          var saveFilePath=res.savedFilePath;
          console.log(saveFilePath)
        }
      })
    }
  })
}

2、获取本地文件列表
      wx.getSavedFileList(Object)接口用于获取本地已保存的文件列表,如果调用成功,则返回文件的本地路径、文件大小和文件保保存时的时间戳(从1970/01/01 08:00:00到当前时间的秒数)文件列表。其相关参数如表表所示:

实例代码如下: 

wx.getSavedFileList({
  success:function(res){
    that.setDtat({
      filList:res.filList
    })
  }
})

3、获取本地文件的文件信息
     wx getSaveFileInfo( Object)接口用于获取本地文件的文件信息,此接口只能用于获取已保存到本地的文件,若需要获取临时文件信息息,则使用wx.getFileInfo(Object)接口。其相关参数如表所示:

实例代码如下:

wx.chooseImage({
  count:1,
  sizeType:['original','compressed'],
  sourceType:['album','camera'],
  success:function(res){
    var tempFilePaths=res.tempFilePaths[0]
    wx.saveFile({
      tempFilePath:tempFilePath,
      success:function(res){
        var tempFilePath=res.tempFilePath;
        wx.getSavedFileInfo({
          filePath:saveFilePath,
          success:function(res){
            console.log(res.size)
          }
        })
      }
    })
  }
})

4.删除本地文件
wx.removeSaveFile(Object)接口用于删除本地存储的文件,其相关参数如表所示:


从文件列表中删除第一个文件,示例代码如下:

wx.getSavedFileList({
  success :function(res){
    if(res.fileList.length>0){
      wx.removeSavedFile({
        filePath:res.fileList[0].filePath,
        complete:function(res){
          console.log(res)
        }
      })
    }
  }
})


5.打开文档
wx.openDocument(Object)接口用于新开页面打开文档,支持格式有doc、xls、ppt、pdf、docx、xlsx、pptx,其相关参数如表:


示例代码如下:

wx.downloadFile({
  url: 'http://localhost/fm2.pdf',
  success:function(res){
    var tempFilePath = res.tempFilePath;
    wx.openDocument({
      filePath:tempFilePath,
      success:function(res){
        console.log("打开成功")
      }
    })
  }
})

  • 24
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 译者序 序言 前言 第1章 安装ap-api 1 1.1 安装 1 1.2 配置autocad 1 第2章 操纵autocad 4 2.1 基本原则 4 2.2 关闭命令回显 5 2.3 保存和恢复系统变量 6 2.4 合人意的u命令 7 2.5 处理escape键 8 2.6 防止命令透明执行 9 2.7 处理回车键 11 2.8 示范程序框架 12 2.9 控制用户命令 13 2.10 没有选择,就没有操作 18 2.11 先选择对象,后调用命令 20 2.12 用好上一个选择集 21 2.13 管理世界坐标系 22 2.14 获取我们需要的对象 25 2.15 输入的确认与限制 26 2.16 autocad命令中的缺省值 35 2.17 关键字、提示和上下文菜单 37 第3章 管理对话框 40 3.1 保持位置 40 3.2 你应该做到 42 3.3 不是为了嵌套而嵌套 44 3.4 隐藏对话框 46 3.5 在对话框中显示幻灯片 47 3.6 获得字符串 49 3.7 获得整型数 52 3.8 获得实数 55 3.9 复选框和单选按钮 57 3.10 列表框和弹出式列表 60 第4章 用activex automation处理autocad 图形 64 4.1 只有当你的工具是一把榔头的时 候,任何事情才会像一颗钉子 64 4.2 autocad的dxf文件格式 64 4.3 文件头段 64 4.4 表段 64 4.5 块段 65 4.6 图形实体段 65 4.7 非图形对象段 65 4.8 autolisp[-]autocad 数据格式 65 4.9 autocad对象模型 66 4.10 为什么要使用activex automation 66 4.11 在何处画线 67 4.12 在何处画了线 70 4.13 符号表 70 4.14 创建图块 70 4.15 在ucs中画图 71 第5章 充分利用activex automation 73 5.1 消息框 73 5.2 命令的输入 74 5.3 菜单和工具栏 74 5.3.1 删除菜单项 74 5.3.2 插入菜单项 82 第6章 反应器入门 84 第7章 生成和配置应用程序 88 7.1 创建工程 89 7.2 创建应用程序 91 7.3 加载应用程序 94 7.4 安装应用程序 96 7.5 配置应用程序 98 附录 ap-api参考 99 a.1 ap-api实用函数 100 a.2 ap-api activex实用函数 136 a.3 ap-api activex反应器函数 142 a.4 ap-api activex方法函数 144 a.5 ap-api activex属性函数 208
(不错的教程,欢迎下载) API应用编程接口的缩写。API开发在现代软件开发中随处可见,其目的是为某个组件的功能提供一个逻辑接口,同时隐藏该模块内部的实现细节。有些API用起来很顺手,而有些则用起来让人摸不着头脑,更有些让人直接弃用。编写优质的API非常困难。大多数人的经验都源于不断犯错或借鉴别人的经验,而本书试图打破这种局面,提炼出耐用且不会过时的API设计策略。API有哪些品质要求,有哪些关键要素,有哪些通用的技巧,设计时要遵循哪些原则……这些问题都能在本书中找到答案。 本书主要内容。 第1章:API简介。阐释API的概念及其独特之处,概览全书内容。 第2章:特征。解答优秀API应具备的特点。 第3章:模式。着眼于一些特定的API设计模式和惯用法,包括Pimpl惯用法、单例(singleton)、工厂方法(factory method)、代理(proxy)、适配器(adapter)、外观(facade)模式以及观察者(observer)模式。 第4章:设计。讨论功能需求的收集和使用用例建模推动简洁有用的接口的设计,以及一些面向对象分析和设计的技术。这一章也将讨论大型软件项目所面临的诸多问题。 第5章:风格。叙述各种风格的C和C++ API,如纯C API、面向对象API、基于模板的API以及数据驱动的API。 第6章:C++的用法。讨论各种能够影响良好API设计的C++语言特性,如良好构造函数和操作符风格、命名空间、指针和引用参数的比较、友元的使用以及如何在动态库中导出符号。 第7章:性能。分析API的性能问题并说明如何使用C++构建高性能的API。 第8章:版本控制。主要讨论API版本控制以及如何保持向。。。
Windows API 函数参考手册 本书编写组 编著 人民邮电出版社 内容简介 内容简介 本书是关于Microsoft Win32 API 函数的完整参考手册。 本书详细介绍了每一个Win32 API 函数的使用方法,其中着重介绍其原型表示、函数说 明、参数说明、注意事项、相应头文件(.H)、链接库(.LIB 或.DLL)和典型示例。对于每 个函数本书给出了相应的示例部分,这样读者在阅读相应的Win32 API 函数时就能很快地了 解它的具体功能和使用方法,便于更快地掌握该接口函数。 本书是从事Microsoft Windows 操作系统开发和应用人员的必备参考书,也可作为大专 院校相关专业师生自学、教学参考用书。 前 言 前 言 Microsoft Win32 API 是Microsoft Windows 操作系统提供的应用程序接口函数,它基本 上概括了应用程序编程中涉及的每个方面。我们在使用MFC 编程时,所用的MFC 函数都 是封装在Win32 API 基础之上的,即MFC 是Win32 API 的一个上层架构。学习Win32 API 能更深刻的理解MFC 的运作机制,同时使用Win32 API 函数编程要比使用MFC 更灵活, 能编写出更加高效的程序。Microsoft Win32 API 也可以在VB 和Delphi 等语言中使用。 Microsoft Win32 API 函数按照功能划分为窗口处理、设备上下文——DC 、绘图函数、 位图和图标、菜单处理、文件处理、同步、处理文本和字体、硬件和系统、Windows 消息、 进程和线程。 本书按功能对Win32 API 函数进行了划分,对于每一个功能部分的函数都具体给出了它 们的函数原型、功能和用法、注意事项、所在头文件、参数调用和典型示例等信息。本书内 容如下: 第 1 章介绍了Win32 应用程序的一些基本知识,例如系统消息传递机制,图形接口编 程等,同时,它也介绍了Win32 API 函数的一些基本知识。 第2 章介绍了关于窗口处理部分的Win32 API 函数,例如窗口创建,撤销等。 第3 章介绍了设备上下文——DC ,例如创建和获取DC 、坐标变换等。 第4 章介绍了绘图函数,例如路径、图元文件等。 第5 章介绍了位图和图标,例如从DLL 中获取图标,设置DIB 的颜色表等。 第6 章介绍了菜单的处理,例如上下文菜单显示,设置位图菜单项等。 第7 章介绍了文件的处理,例如文件查找,加锁和解锁文件等。 第8 章介绍了同步,例如互斥对象,信号量对象和关键段对象等。 第9 章介绍了文本和字体的处理,例如获取系统中字体的信息,输出各种形式的文本等。 第10 章介绍了硬件和系统,例如捕获鼠标,获取各种系统信息等。 第11 章介绍了Windows 消息,例如消息的获取和发送等。 第12 章介绍了进程和线程,例如调试进程和线程,获取和设置进程和线程的各种信息, 比如优先级、工作集等。 本书为立志掌握 Windows 操作系统编程的人提供了一条有效的捷径,对于不同层次的 Windows 操作系统编程人员来说,本书都极具参考价值,是一本不可多得的参考书。 参与本书的主要编写人员有张鸿超、张宏林等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值