引用 | 編輯
cooperpon
2008-02-12 11:13 |
2樓
▲ ▼ |
其實你可以寫了
不過看你是要用何種開發環境 若是初學的話 試試visual stdio C++ 6.0 或 visual basic 6.0 開MFC 的project 就可以編輯你的視窗程式了 不懂得語法 試著去查閱MSDN 相信會進步的很快的 若是要高階點 試試.net 現在版本到2008 這平台就很多種了language 像是C# 若是要學 去買本書吧 有C的底子 很容易上手的 以上說的 是在windows環境 ![]() |
引用 | 編輯
kolong
2008-02-12 12:07 |
3樓
▲ ▼ |
下面是引用admin0n於2008-02-12 08:57發表的 已經學過C語言,離視窗程式設計還有多遠?: 請去買一本Windows程式設計的書來看.. c++只是基本的工具. 不會用工具,如何造房子. ![]() |
引用 | 編輯
admin0n
2008-02-12 18:33 |
4樓
▲ ▼ |
謝謝大家回答,綜合以上所說,
學會了基本的C語言,還必須要學C++?不學C++行嗎? Windows視窗程式設計還要學MFC? 編譯程式為什麼一定要用"visual stdio C++ 6.0"?這樣會不會太偷懶忘了些基本的東西? basic與C#是另外或較新的東西,沒有這些東西也可寫出Windows視窗程式? 雖然說寫視窗程式有很多種方法,但我想問比較古早、正統的必要方式:所需的程式語言與工具為何? 簡單說,13年前(1995年),那時沒有visual studio,沒有C#,沒有.net, 那時是怎樣寫Windows視窗程式?只會基本C語言應該不行寫視窗程式? ![]() |
引用 | 編輯
kolong
2008-02-12 23:02 |
5樓
▲ ▼ |
下面是引用admin0n於2008-02-12 18:33發表的 : 1.可以把c跟c++當成二種不一樣的語言來學 2.Windows視窗程式設計不是只有MFC,MFC也只是別人包好的工具,重點是...Windows程式設計的原理跟架構 3.新手建議是用make來complie程式 4.只會c還是可以寫Windows視窗程式 PS:只用組合語言也可以寫Windows視窗程式唷...... ![]() ![]() |
引用 | 編輯
admin0n
2008-02-14 11:50 |
6樓
▲ ▼ |
下面是引用kolong於2008-02-12 23:02發表的 :可是下面這基本的視窗程式有包含C++的類別觀念? 怎說只會C語言也可寫視窗程式? windows程式最基本入門 #include <windows.h> LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); char szClassName[ ] = "FRM_HAUTOCFG"; HWND hwnd; int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { MSG messages; WNDCLASSEX wincl; wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; wincl.style = CS_DBLCLKS; wincl.cbSize = sizeof (WNDCLASSEX); wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; if (!RegisterClassEx (&wincl)) return 0; hwnd = CreateWindowEx ( 0, szClassName, "AutoConfig", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 544, 375, HWND_DESKTOP, NULL, hThisInstance, NULL ); ShowWindow (hwnd, SW_HIDE); while (GetMessage (&messages, NULL, 0, 0)) { TranslateMessage(&messages); DispatchMessage(&messages); } return messages.wParam; } LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_DESTROY: //------------------------------------------ PostQuitMessage (0); //------------------------------------------ break; default: /* for messages that we don't deal with */ return DefWindowProc (hwnd, message, wParam, lParam); } return 0; } ![]() |
引用 | 編輯
kolong
2008-02-14 12:56 |
7樓
▲ ▼ |
下面是引用admin0n於2008-02-14 11:50發表的 : 類別在那裡.....?? ![]() |
引用 | 編輯
admin0n
2008-02-18 20:15 |
8樓
▲ ▼ |
抱歉,kolong
但以下這些是什麼語法? LRESULT CALLBACK WindowProcedure (); int WINAPI WinMain (); 為什麼int WinMain (); 中間要加一個WINAPI?C語言裡面沒有這樣語法? 同樣的LRESULT CALLBACK也是很奇怪? HWND hwnd; MSG messages; WNDCLASSEX wincl; 以上3個HWND、MSG、WNDCLASSEX聽說是typedef定義的關鍵字, 從哪裡可以找到typedef定義的過程? ![]() |
引用 | 編輯
kolong
2008-02-19 13:03 |
9樓
▲ |
下面是引用admin0n於2008-02-18 20:15發表的 : LRESULT CALLBACK WindowProcedure (); 這個是視窗程式設計的新觀念... 你要學的就是這個新東西 其實也是define int WINAPI WinMain (); 那個WINAPI也是define.. 如果有興趣可以去看一下windows.h的東西 msdn是你要進視窗程式設計必定會去看的東西 因為這是微軟出的說明手冊. 電腦是跑機械語言,不管你是用什麼程式語言去寫的, 最後都會變成機械語言來跑. 所以理論上來說,任何語言都可以寫視窗程式. ![]() |