Tôi muốn học lập trình C++ GUI bằng Visual Studio 2008. Tôi không chắc chắn nên bắt đầu từ đâu. Tôi đã học C++ ở trường trung học, nhưng không phải là GUI. Tôi đã làm C# trong khoảng 3 năm nay và đó là cách tôi "học" lập trình GUI. Bây giờ tôi muốn học cách viết GUI mà không cần sử dụng .NET framework, vậy tôi bắt đầu từ đâu?Windows GUI Lập trình C++
Trả lời
MFC gần như đã lỗi thời. Tôi khuyên bạn nên sử dụng WTL thay thế.
Cũng không phải là ý tưởng hay khi bắt đầu lập trình cho GUI trong C++ khi có rất nhiều khung công tác tốt có sẵn như khung nền tảng QT chéo.
"Lập trình Windows 5th Edition" của Charles Petzold là Kinh Thánh cho lập trình Windows.
Vì bạn nói rằng bạn đã làm C# GUI lập trình trong khoảng 3 năm, tôi sẽ giả định rằng có nghĩa là Windows Forms. Một cách để nhúng ngón chân của bạn trong nước là hãy nhớ rằng WinForms thực sự chỉ là một wrapper hướng đối tượng xung quanh user32
. Vì vậy, tải lên Reflector và hãy xem cách một số các điều khiển được thực hiện. Bạn sẽ thấy rằng những thông điệp lạ như WM_PAINT
và WM_KEYDOWN
được bơm đến WndProc
các điều khiển khác nhau của Windows. Trong lập trình Win32 hoặc MFC cũ, điều tương tự vẫn đang diễn ra. Làm điều này sẽ cho phép bạn từ từ bóc vỏ các loại hành tây; bạn cũng sẽ cảm thấy tốt hơn về cách Windows Forms hoạt động. Từ đó, tôi khuyên bạn nên chọn Programming Windows bởi Petzold; nó cũ, nhưng các API gốc trong Windows không di chuyển xung quanh mà nhiều hơn. Chúc vui vẻ!
Bạn có được phép viết GUI trong VC++ bằng Microsoft Foundation Classes hoặc MFC không? Đó là cách tôi đã và đã viết VC++ GUIs trong quá khứ.
Đã có nhiều sách được viết trên MFC trong những năm qua. Tôi chắc chắn rằng một trong số họ sẽ làm rất tốt. Bạn có thể tìm thấy trong tài liệu tham chiếu ATL là một sự lặp lại của Microsoft trên STL. MFC và ATL loại sáp nhập trong những năm qua vì vậy bất cứ điều gì ATL cũng được áp dụng cho một ứng dụng MFC những ngày này.
Chúc may mắn và vui chơi!
Một số ý kiến dị giáo ...
tôi sẽ không khuyên bạn nên C++ để viết của Windows GUI phức tạp - ngôn ngữ/thư viện combo như C# hoặc Delphi rất nhiều hiệu quả. Nếu bạn muốn tham gia lập trình C++, tôi khuyên bạn nên sử dụng nó để viết một máy chủ đa luồng của một số loại - một máy chủ Web đơn giản sẽ làm cho người mới bắt đầu.
Và nếu bạn thực sự muốn hiểu các API Windows cơ bản, tôi nghĩ có một điều gì đó để viết một ứng dụng đơn giản (ví dụ, một phiên bản đơn giản của sổ ghi chép) trong C (không phải C++). Bạn sẽ chỉ muốn làm điều đó một lần, nhưng bạn sẽ học được rất nhiều trong quá trình này.
Và trước khi bất kỳ ai bắt đầu điên rồ xuống bỏ phiếu, hãy để tôi nói rằng tôi là một lập trình viên C++ trên 20 năm, và thực sự yêu thích ngôn ngữ.
Không, tôi hoàn toàn đồng ý. Đó là giá trị nó cho "OH - vì vậy R'SNG làm thế nào nó hoạt động" và cho "OH - do đó, đó là lý do tại sao đã có một hàm bao bajillion cho nó" và cho "OH - vì vậy đó là lý do tại sao chúng tôi không làm điều đó theo cách đó nữa. " =) –
Ah Tôi biết bạn cảm thấy thế nào, người lập trình ngôn ngữ phiên dịch cũ muốn biết sự kỳ diệu đằng sau lập trình được biên dịch. Vâng, tôi không thể tìm thấy hướng dẫn mà tôi đã sử dụng để học lập trình Windows, nhưng chỉ biết rằng có hướng dẫn win32 tốt xung quanh, vì vậy bạn không lãng phí thời gian của bạn mua một cuốn sách chỉ được nêu ra. Tôi đã tìm thấy: http://www.relisoft.com/win32/index.htm Hướng dẫn gọn gàng nhất, tin tưởng tôi.
Hiện tại (Windows 8), WinRT, một API hoàn toàn mới đã được Microsoft giới thiệu và tôi rất vui mừng về nó. Không bao giờ làm MFC lập trình, nhưng thấy một số mẫu mã và họ nhìn lạ 90's C-style (hiện đại C-style thường tốt hơn!). Vì vậy, mà không bắt đầu trực tiếp với MFC, tôi nghĩ tôi sẽ bắt đầu với WinRT
:)
- 1. Lập trình GUI Perl trên Windows
- 2. Windows Service Plus GUI/C#
- 3. GUI Framework/Lib cho C++ trong Windows
- 4. Lập trình GUI ở Scala
- 5. C++ win32 GUI lập trình, con đường ngắn nhất?
- 6. Bất kỳ mẹo nào về lập trình Linux cho lập trình viên Windows (C/C++)?
- 7. Thiết kế GUI Qt lập trình
- 8. Công cụ lập trình GUI Haskell
- 9. Công cụ WYSIWYG để lập trình GUI bằng Python?
- 10. Cách tìm hiểu lập trình GUI trong F #
- 11. OCaml: Con đường hiệu quả để lập trình GUI?
- 12. Lập trình khởi động hệ thống trong c + + (windows)
- 13. Tìm thư mục windows lập trình trong C#
- 14. Lập trình USB C++
- 15. Windows: Ngôn ngữ lập trình nào?
- 16. học lập trình trình điều khiển Windows
- 17. Cập nhật GUI của Windows 8 C# Metro App
- 18. Windows GUI Main Loop Trong C# ... ở đâu?
- 19. Phát triển GUI với C++ trong môi trường Windows
- 20. Điều gì là tốt hơn cho một lập trình sinh viên trong C++ để học viết GUI: C# vs QT?
- 21. Tôi sẽ phải làm gì để lập trình GUI trong C++ bằng Eclipse IDE?
- 22. Thiết kế C# .NET 3.5 GUI
- 23. Lập trình thay đổi Windows Shell
- 24. Bất kỳ ví dụ nào về việc tạo dịch vụ windows trong C/C++? (Không GUI)
- 25. Hướng dẫn toàn diện cho người mới bắt đầu về cách viết chương trình Windows GUI
- 26. Windows Phone 7: Lập trình Socket
- 27. Trình lập lịch tác vụ - Windows 7
- 28. Lập trình tường lửa của Windows
- 29. lập trình C# mạng
- 30. Trình lập lịch trình chuỗi Windows không công bằng?
Kinh Thánh! Đọc sách của Petzold là không chỉ để phát triển bằng cách sử dụng trực tiếp API Win32 (trong đó có ưu và khuyết điểm của nó - tôi thích nó để sử dụng MFC, mặc dù) mà còn để hiểu cách Windows hoạt động bên dưới mui xe. –