מקבילה ל CWnd ב #C

pitangus

New member
מקבילה ל CWnd ב #C ../images/Emo35.gif

אהלן יש לי צורך בתכנית ב #C (לא חשוב למה דוקא בשפה זו) שמטפלת בחלונות באופן כללי: שולחת לחלונות הודעות (messages), וכו'. בMFC הייתי משתמש בclass הבסיסי: CWnd. יש איזושהי מקבילה ב #C? אני צריך לדעת את ה HWND של החלון, וכו', ו Control של #C לא מספק את הסחורה. תודה! רואי
 

MotiAd

New member
לפי דעתי יש לך בעייה אחרת....

לא נראה לי שהבנת בדיוק איך העסק מתבצע שם. זה לא עוד גועל נפש כמו ב-ATL, MFC VC. העניין שם עובד על מושג ואידיאולגייה שנקראת אירועים. וזה הדבר הכי יפה שראיתי מעודי. (סליחה, גם ב-MFC יש משהו בסגנון). תלמד איך זה עובד. זה פשוט קל, יפה ומפשט את העבודה בלי קוד מגעיל.
 

pitangus

New member
בלי קשר לevents

בלי קשר ל events, חסרה לי פונקציונליות. האפליקציה שאני אמור לכתוב צריכה לסרוק את כל החלונות שפתוחים (עלולים להיות מאות ואפילו יותר כאלה) על המסך, ולהדפיס את ה( handle (HWND שלהם. ב MFC אין לי בעיה לעשות את זה ב20 שורות קוד. ב #C אין לי מושג...
 

MotiAd

New member
דבר ראשון...

מדובר בחלונות מערכת (כלומר לא רק של התוכנית?...) ב-VB אישית עשיתי DECLARE לפונקציות API וככה עבדתי. מעצבן אבל זה מה יש. אני חושב כמעט בטוח שיש מקבילה גם כן. וחוץ מזה הרי מה שאתה עובד מולו זה הידיות לחלונות לא שום דבר אחר.
 

mdk5

New member
רבותי... API !!!

EnumWindows - פונקציה שעוברת על כל החלונות הפתוחים. אחד הפרמטרים שהפונקציה מקבלת הוא מצביע ל-CALLBACK Function, (את התחביר המדוייק תוכל למצוא ב-MSDN) על כל חלון ש-EnumWindows יעבור, ייקרא ה-CALLBACK עם ה-HANDLE של החלון כפרמטר...
 

MotiAd

New member
כן ולא...

זה לא עובד לפי אותה הצורה של הקוד. הרעיון הוא כמעט אותו הדבר אבל הדרך שבה זה ממומש בשפת התיכנות שונה לגמרי. ב-VC צריך לעשות SWITCH לכל MESSAGE אפשרי ב-VB לכל אחד כזה יש פונקציה מיוחדת משלו (כמו בד'אווה שממפים מחלקה שיורשת מממשק מסויים וכך מטפלת בפקד מסויים נניח) כך ב-VB מגדירים פונקציה ואומרים באילו אירועים של אילו פקדים היא מטפלת (היא יכולה לטפל בכמה וזה ממש לא משנה, ממש נפלא, והרבה יותר יפה מהפיתרון של ג'אוה לטעמי).
 
למעלה