上一篇中,經過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窗口?那就趕忙行動吧!最後上最終運行結果:指針