上一篇中,经过winapi,咱们成功的建立了一个弹出消息窗口,其中用到了MessageBox(...)这个接口。今天,正式开始写窗口程序,若是你熟悉C语言的windows程序,你就会发现后面的程序和C语言的很像,没错,其实就是用Go的语法去调用windows的api罢了,其基本结构仍是相似的。说了那么多,仍是先上些代码吧:git
如上,首先是导入一些须要用到的包,其中github
github.com/lxn/go-winapi 就是封装了windows api的一个开源包,和前一篇的同样哈,originWndProc声明了一个窗口句柄后面要用。windows
再后面是声明了窗口的高度和宽度的常量。分别是500和300,最下面的_TEXT方法的做用是将string类型数据转换成无符号16位整数指针的,后面将文字写到窗口上时须要调用。api
再看剩下的:函数
上面的是一个窗口消息处理程序。它主要用来接收窗口消息,并根据消息类型来进行处理,若是不是很明白不要紧,目前只要知道它是处理窗口消息的一个方法就好了,具体的机制之后专门讲。ui
最后写上主函数:spa
其中的CreateWindowEx方法就是建立了一个窗口,方法的参数具体参考windows的api。建立后窗口后会返回一个窗口句柄hwnd,最后调用ShowWindow将hwnd句柄传给它,就能成功显示窗口了设计
最后的一个for循环就是循环接收接收到消息队列中的窗口消息,并交给以前的消息处理消息处理。固然实际过程没那么简单,目前,主要先实现功能,嘿嘿。最近忙着不少项目并且人也愈来愈懒,因此文章写得有些简单,千万别扔砖啊。。。。。。之后会逐渐补上具体的知识细节,固然,若是你等不及了,能够本身研究,其实和c的Windows程序设计同样的。是否是心动了?想看看go语言的Windows窗口?那就赶忙行动吧!最后上最终运行结果:指针