أين هو مكان جيد لبدء برمجة واجهات التشغيل windows ؟ [مغلقة]

StackOverflow https://stackoverflow.com/questions/4347

  •  08-06-2019
  •  | 
  •  

سؤال

لدي خبرة في كتابة تحكم الشبكة تطبيقات عميل/ملقم في C و C++ ، ولكن أعرف شيئا عن استخدام win32 البصرية API, MFC, Qt, wxWidgets ، إلخ.أين هو مكان جيد للبدء ، و ما هي الطريقة التي يجب أن تتخصص في ، لكي يكون المستقبل جاهزة وقوية?

هل كانت مفيدة؟

المحلول

هذا هو واسع بدلا السؤال ، كما برمجة واجهة التطبيقات في ويندوز يمكن القيام به في ذلك من نواح كثيرة.

هناك نوعان من أجزاء رئيسية لتطوير أي واجهة المستخدم الرسومية التطبيق:على اللغة و API/الإطار.معتبرا كنت ترغب في تعلم كيفية بناء تطبيقات ويندوز واجهة المستخدم الرسومية ، واللغة ليست نقطة التركيز بالنسبة لك.ومن ثم ، يجب عليك اختيار اللغة التي تعرف بالفعل والعمل مع إطار أو API التي يمكن تسخيرها من خلال اللغة التي اخترتها.

إذا كنت ترغب في استخدام C كنت إلى حد كبير مقصورة على التعامل مع Win32 API نفسك في هذه الحالة القراءة بيتزولد أو ريختر سيكون أماكن رائعة للبدء.Win32 API يمكن أن تكون شاقة جدا لكنها تستحق الجهد لتعلم (imho).هناك الكثير من الدروس على Win32 على شبكة الإنترنت, وهناك دائما MSDN, مع إشارة كاملة/دليل Win32 API.تأكد من تغطية ليس فقط API ، ولكن في مجالات أخرى مثل الموارد/الحوارات كما هي اللبنات الخاص بك Win32 التطبيق.

إذا كنت ترغب في استخدام C++ لديك جميع الخيارات التي لديك عند استخدام C بالإضافة إلى عدد قليل من الآخرين.أنصح الذهاب مع Win32 API مباشرة ، ومن ثم الانتقال إلى الإطار مثل MFC, Qt, wxWindows أو GTK بحيث يمكنك قضاء وقت أقل في العمل مع رمز المتداول والتركيز بدلا من ذلك على كتابة تطبيق المنطق.آخر 3 خيارات أنا مجرد سرد لها فائدة إضافية يجري عبر منصة, لذلك كنت لا داعي للقلق كثيرا حول منصة قضايا محددة.بالنظر إلى أن قلت أنك تريد أن تعمل مع ويندوز, سوف نفترض أنك حريصة على التركيز على ذلك بدلا من عبر منصة -- لذلك يذهب مع MFC, ولكن قضاء بعض الوقت مع Win32 API الأولى للتعرف على بعض المفاهيم.

عند التعامل مع MFC و Win32 API, انها فكرة جيدة لمحاولة الحصول على فهم متين من المصطلحات قبل كتابة التعليمات البرمجية.على سبيل المثال ، تحتاج إلى فهم ما رسالة مضخة هو وكيف يعمل.تحتاج إلى معرفته حول مفاهيم مثل "رسم المالك الضوابط" ، subclassing.عندما نفهم هذه الأشياء (و أكثر), سوف تجد أنه من الأسهل العمل مع MFC لأنه يستخدم مماثلة المصطلحات في فئتها الواجهات (على سبيل المثال.عليك أن تعرف ما هو "ترجمة الرسائل" يعني قبل أن تتمكن من فهم كيف ومتى تستخدم PreTranslateMessage).

هل يمكن أيضا استخدام مدارة C++ لكتابة .صافي واجهة التطبيقات ، ولكن قرأت في عدد قليل من الأماكن التي مدارة C++ لم يكن المقصود منها أن تستخدم في هذه الطريقة.بدلا من ذلك ينبغي أن تستخدم كبوابة بين الأم/التعليمات البرمجية غير المدارة و التعليمات البرمجية المدارة.إذا كنت تستخدم .صافي فمن الأفضل لاستخدام .صافي اللغة مثل VB.NET أو C# بناء واجهات.

حتى إذا كنت هي ذاهب الى استخدام .صافي, لديك حاليا اختيار WinForms المكتبة أو WPF.أنا شخصيا أشعر أنك ستكون إضاعة الوقت في التعلم لبناء WinForms التطبيقات نظرا إلى أن برنامج الأغذية العالمي يهدف إلى استبدال.مع مرور الوقت WPF سوف تصبح أكثر prevelant و Winforms من المرجح أن تموت.WPF لديه أكثر ثراء API مجموعة لا تعاني من الكثير من القيود التي Winforms لا.إذا كنت قد اخترت هذا الطريق ، ومع ذلك ، سيكون لديك أي شك أن تعلم XAML, وهو لغة الترميز الذي يدفع تطبيقات WPF.هذه التكنولوجيا قادم من العمر, و هناك العديد من الأماكن الرائعة لمعرفة المزيد عن ذلك.أولا, هناك مواقع مثل LearnWPF, ، DrWPF التي لديها بعض المواد.ثانيا ، هناك الكثير من الجودة الكتب على الموضوع.

إذا باختصار, مرة واحدة كنت قد اخترت اللغة و التكنولوجيا, المسار هو في الواقع من السهل جدا.مجرد التقاط كتاب أو اثنين ، قراءة بعض بلوق, الحصول على بعض نماذج التعليمات البرمجية..والأهم من ذلك ...كتابة التعليمات البرمجية.الاستمرار في الكتابة ، والحفاظ على الوقوع في الخطأ ، والحفاظ على التعلم منها.

وفي ملاحظة أخيرة...

وبعبارة أخرى, Silverlight.إذا كنت لا تريد أن تذهب MS الطريق قد تعطي أدوبي فلاش/فليكس نظرة ترى.كل Silverlight و فلاش/فليكس بناء ريا هو.الذي أعتقد أنه هو أين نتجه.كانوا يوما من المكتب مثل تطبيقات معدودة

أنا لا أتفق على الإطلاق.سيلفرلايت هو ليس نفس WPF.سيلفرلايت هو ويب محددة ، وليس لديها سوى مجموعة فرعية من WPF الميزات.نظرا لأن السؤال يسأل عن ويندوز واجهة المستخدم الرسومية تطبيقات فلاش/فليكس تطبيقات إنترنت غنية ليست حقا المناسب الاقتراح.أنا أيضا لا أتفق أن أيام الغنية تطبيقات العميل (مثل office) هي مرقمة في كل شيء.

آمل أن يساعد.بالتوفيق :)

نصائح أخرى

أنا لا أعرف إذا أنا أسميه مكان جيد للبدء ، ولكن إذا كنت تريد أن تكون في المستقبل جاهزة, نلقي نظرة على windows presentation foundation التي بنيت بالكامل لغرض برمجة واجهة المستخدم الرسومية ويندوز

أول تجربة كتابة بسيطة واجهة المستخدم الرسومية تطبيقات ويندوز مع C# و Visual Studio.واجهة المستخدم الرسومية بناء واجهة بسيطة السحب والإسقاط الصفقة التي يولد العظمي الأساليب على أساس المحتملة إجراءات المستخدم.أنا فقط فعلت البرمجة الأساسية إلى حد ما مع هذا ، ولكن أتصور أنه سيكون مكان ممتاز للبدء في تعلم أساسيات و تمتد إلى قدرات أكثر تقدما كما تذهب.

هناك الكثير من على الانترنت Win32 الدروس:

http://www.zeusedit.com/forum/viewtopic.php?t=1218

هناك الكثير من المجمعين للاختيار من بينها:

http://www.zeusedit.com/forum/viewtopic.php?t=238

أود أن أوصي أيضا الحصول على Borland SDK Win32 الوثائق الخاصة بـ WinHelp تنسيق الملف:

http://www.zeusedit.com/forum/viewtopic.php?t=7

إلا أنها تغطي أساسيات العارية Win32, ولكن عندما تبدأ هذه يمكن أن تكون مفيدة كما أنها أقل شاقة و أقل المتضخمة من MSDN.

أنا لن أذهب إلى أسفل Silverlight, فلاش/فليكس أو أي مماثلة الطريق.أنها لا تبدو لطيفة ، ولكن المشكلة الرئيسية هي أن قانون المحرك الذي يعمل عليه مغلق تماما-صندوق التحكم من قبل شركة واحدة.خذ على سبيل المثال 64 بت إصدارات من كل من هذه.إذا كان بعض منصة جديدة يظهر أنك لن تكون قادرة على الهجرة الخاص بك التعليمات البرمجية الموجودة عليه.

الأعمال تطبيقات ويندوز أشكال ناضجة جدا.فإنه يوفر لطيف الطريق من السيارات توليد الكثير لك في السماح السيطرة غرامة الحبيبات و المتداول الخاصة بك.هناك طن من جودة عالية طرف ثالث ضوابط مجموعة كبيرة من الأمثلة, مستندات, وما إلى هناك.من الصعب أن واجهت مشكلة أن شخصا آخر لم تحل.أنا أوصي الحصول على بعض المعلومات الأساسية Win32 المعرفة (مثلا ، بيتزولد) كما WinForms إطار حياة على أعلى من ذلك.

لا WPF الخبرة ، ولكن من عينة التطبيقات التي رأيتها يبدو خيار جيد للتطبيقات التي واجهات سوف تستفيد من أكثر رسومية الاستعارات.حتى إذا كنت تفعل التطبيق المصرفية ، ربما لا يستحق تصميم إضافي في النفقات العامة.ولكن إذا كنت تفعل, قول, إدارة المستودعات التطبيق يمكن تحسينها من خلال إسقاط جدا مربعات في حد صناديق.

@StephenCox:إجابة خاطئة على السؤال الخطأ.المرجع هو يسأل عن عميل سطح المكتب والتطبيقات وعلاوة على ذلك ، WPF != سيلفرلايت.

بسيطة نقطة انطلاق للحصول على رأسك حول "الحدث يحركها" الطبيعة أساسا كل الأطر التي تم إنشاؤها حول نظرة FLTK.

وهنا بعض سريعة بدءا من أشرطة الفيديو الرابط

للاستخدام المهني أنصح Qt, مكلفة ولكن في كثير من الأحيان من المفيد التجارية الحالات.

منذ كنت بالفعل على دراية C و C++ أنصح تعلم كيفية كتابة بسيطة واجهة المستخدم الرسومية ويندوز التطبيق باستخدام تشارلز الكتاب بيتزولد.وسوف تعطيك فهم أساسي لكيفية ويندوز يعمل.أنه من الجيد أن نفهم أن معظم كل ما تراه هو نافذة (زر نافذة على سبيل المثال) وأن هذه النوافذ الرد على الرسائل.أنا لا' تنفق الكثير من الوقت على هذا وعلى الرغم من أنك لا تحتاج بالضرورة إلى القيام بذلك إذا كنت سوف اختار WPF.أنا فقط أعتقد أنه من الجيد أن يكون لديك فهم أساسي من هذا.

كان هناك بودكاست جيدة في الآونة الأخيرة .صافي الصخور يسمى "كيت غريغوري يتطور في C++ فيستا!" هناك وتوصي شخص بدءا من الآن يجب أن لا تستخدم/تعلم MFC (على الرغم من أنه قد تم مؤخرا تحديث).

بقدر الحصول على استعداد للمستقبل تحتاج إلى تعلم WPF ، ولكنها ليست كاملة حتى الآن ، وذلك اعتمادا على أنواع من جانب العميل التطبيقات التي تريد إنشاء, وربما كنت سوف تحتاج إلى معرفة WinForms.الغالبية العظمى من الناس ليسوا باستخدام WPF حتى الآن, لذلك هو الوقت المناسب للبدء في التعلم.أعتقد أنك سوف تجد أنه من الأسهل استخدام C# تعلم أنه بدلا من التعليمات البرمجية المدارة مع C++.

الحصول على أساسيات الحق أولا.أفضل التعليمي وجدته هو: http://winprog.org/tutorial/start.html

بعد ذلك, على الرغم من أن الصفحة الرئيسية هي hatefully مقيت ، صفحات دروس جيدة في المحتوى و الجمال: http://www.tenouk.com/cplusmfcdotnet.html

ثم بالطبع هناك MSDN.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top