進來學習SDK編程,感覺好多東西不夠系統。網上找到的很好的資料。
首推:http://blog.csdn.net/beyondcode,API入門系列總結的相當不錯。
排名第二的是勸學網小雅整理的SDK編程http://www.quanxue.cn/JC_CLanguage/SdkIndex.html;
排名第三的是《Windows程式設計》Charles Petzold寫的,堪稱是地球上最有名的windows程式設計書;
排名第四的是http://www.functionx.com/win32/Lesson01.htm,超詳細的一份學習教程;
排名第五的是《windows程式設計教程》楊祥金等編著,這本書其實是總結了《Windows程式設計》,不過還可以。
一個相關問題的解釋:
1.RegisterClass函數的作用是通知系統,你要定義一個新的表單類型,然後把這個類型記錄到系統裡面,以後你就可以使用CreateWindow來建立一個基於此類型的表單。基於此類型的表單都具有相同的屬性,比如,背景色,游標,表徵圖等等
對於對話方塊而言,系統已經註冊了對話方塊自己的類型,因此你無需調用RegisterClass就可以使用DialogBox顯示模態對話方塊,使用CreateDialog建立非模態對話方塊
對於控制項而言,系統已經註冊了對話方塊自己的類型,因此你也無需調用RegisterClass就可以使用CreateWindow來建立控制項,而CreateWindow中的第一個參數,正是RegisterClass函數使用的WNDCLASS結構中的成員lpszClassName。
控制項與對話方塊的區別在於,對話方塊的表單過程由調用程式提供,而控制項的表單過程是定義在系統中的,你必須對表單進行子類化,才能定製控制項的處理訊息邏輯。
2.說白了,早在C語言的Window編程時代,就已經支援了繼承,這為以後的C++語言的實現奠定了基礎。RegisterClass函數的作用是定義一個表單類,相對於C++中的class概念,而CreateWindow這個函數是定義基於這個類型的對象,相對於C++中的對象概念。
3.當你使用CreateWindow函數時,如果指定了WS_VISIBLE標誌,那麼就無需調用ShowWindow函數就可以顯示表單,否則,你就必須使用ShowWindow函數。UpdateWindow函數的作用是發送一條WM_PAINT訊息給表單過程,讓表單在建立完之後,立刻進行繪製。如果沒有UpdateWindow函數,那麼只有當表單建立完之後, 它的可視地區發生變化了,才會響應WM_PAINT.