גלעד

ברשדל

New member
גלעד

אני חדש בפורום, וגם חדש בשפת vc. שאלה: א. כשאני יוצר תפריט חדש במשאבים איך אני יוצר אותו עם יותר מהיררכיה אחת. כלומר היררכיה פנימית. ב. איך אני מקשר תפריט שנוצר בקובץ המשאבים ל dialog חדש. ג. setwindowpos דורש ידית של cwnd איך אני משיג את הידית. ג. מה בדיוק ההבדל בין ידית לאוביקט. ד. הבנתי שעל מנת לצבוע רקע בחלון אני משתמש ב CDC של החלון עם הפקודה SetBkCOlor . ועלי לצבוע רק ב OnDrow. אם אני רוצה להשיג ondrow של פקד כגון Button. כיצד אני עושה זאת. בקיצור אני רוצה לצבוע את הכפתור בתגובה ללחיצה על הכפתור.
 

gilad_no

New member
השאלה מופנית ישירות אליי? ../images/Emo13.gif

אני לא יחיד כאן בפורום וישנם עוד אנשים מוכשרים (נו, טוב, לא כמוני :)) שיכולים לעזור. קודם כל, נראה לי שעדיין לא הבנת כ"כ איך עובדת מערכת חלונות. תתחיל מקריאה כללית על אופן פעולת המערכת כי תכנות שם אינו דומה לתכנות בדוס. מצורפים מספר אתרים טובים להתחלה. אני אנסה לענות על השאלות: כאשר אתה יוצר אובייקט בתפריט, נוצר לך מתחתיו ריבוע שלחיצה עליו נותנת לך אפשרות להכניס תת תפריט. זה נכון לעורך הגרפי (VC) כמו שכתבת. אם אתה רוצה לעשות את זה ידנית דרך קובץ המשאבים, תגיד ואני אסביר לך על מנת לקשר תפריט, ניתן לעשות זאת גם בעורך המשאבים. בהגדרות הדיאלוג (כפתור ימני - Properties) יש לך אפשרות לבחור את התפריט שיופיע. לאחר מכן, אתה צריך לקשר את הפקודה לחלון המתאים (במקרה הזה, הדיאלוג) דרך ה-Class Wizard. אם אתה קורא לפקודה מתוך המחלקה של החלון, אתה לא צריך ידית כי הדיאלוג נגזר מCWnd. ואם אתה קורא לה ממקום אחר, אתה צריך להעביר את המצביע של החלון. תפרט בדיוק מה אתה מנסה לעשות וננסה לעזור אובייקט - אין לי מושג איך להתחיל להסביר את זה ואני אשמח אם מישהו אחר יעשה את זה. בגדול, יש את HWND שהינו ידית לחלון. מייקרוסופט עטפו את כל הטיפול של חלון בתוך מחלקה שנקראת CWnd. אם אתה יוצר אובייקט כזה (דיאלוג למשל) הוא מכיל בתוכו את כל מה שרלוונטי לטיפול בחלון הנ"ל. על מנת לצבוע אובייקט כלשהוא שנגזר מCWnd (כל הפקדים נגזרים ממנו) הכי קל זה לגזור מחלקה חדשה מסוג הרצוי (במקרה שלך, CButton) ובתוכה לדרוס את הפונקציה הרצוייה (OnPaint או משהו דומה). OnDraw משמש לציור של CView שפועל בארכיטקטורה מסמך\תצוגה. כמו כן, תבדוק את האתרים המצורפים. יש שם דוגמאות כאלו של כפתורים בנוסף, הייתי ממליץ לך לקנות (או להוריד) ספר טוב ולהתחיל לעבור עליו לפי הסדר. אני אישית אוהב את "המדריך השלם Visual c++" של הוצאת הוד-עמי (ספר ירוק). הוא מיועד למתחילים בהצלחה
 

ברשדל

New member
שנייה , לא הכל ברור

א. אני מבין מצוין מה זה אוביקט כי תכנתתי בסביבת dos. אני לא מבין מה זו ידית. אם יש לי פוינטר ל CWnd, אז למה צריך את הידית (HWND). לאו דווקא ב setwindowpos אלא בכלל. בקיצור מה המשמעות של ידית ולמה צריך אותה, מה היא שונה מאוביקט (שאותו אני מבין).
 

gilad_no

New member
ידית

כל פקודות הAPI המקוריות של חלונות דורשות ידית. הידית הינה מזהה לחלון. אם יש לך חלונות שונים, לכל אחת תהיה ידית שונה (זה כמו ת.ז של החלון) מחלקת CWnd עוטפת את פקודות החלונות ומכילה בתוכה משתנה שמכיל את הידית לחלון הנוכחי. ברוב המקרים אתה לא צריך להשתמש בו. פקודת SetWindowPos של CWnd מקבלת כפרמטר ראשון מצביע לחלון שיחסית אליו אתה רוצה לקבוע את סדר החלונות. בדר"כ, אתה לא צריך אותו ולכן אתה יכול לשים NULL ובדגלים (הפרטמר האחרון) לשים SWP_NOZORDER. ככה אתה אומר לפונקציה להתעלם מהפרמטר הראשון של מצביע החלון.
 

lewney

New member
ממ

אם יש לך פוינטר ל CWnd:
HWND hWnd = cwPtr->m_hWnd; [... עושים משהו עם hWnd ...]​
 

dannykalfon24

New member
ולמה אתה לא פונה אליי הא?

א:תפריט חדש הכוונה לMENUE? אם הבנתי נכון או שאני מפגר או שלא ,פשוט תעשה אנטר למשל על HELP אז יפתח חלון נוסף מתחתיו ושמה תוכל להתעסק ב: בקובץ המשאבים פשוט תלחץ פעמיים על האוביקט שבתפריט וMFC יצור לך את הפונקציה באופן אוטמטי למשל נסה ללחוץ פעמיים על OK שיש בדיאלוג ואז יופיע לך ONOk תאשר את זה ואז אתה יכול להרות לכפתור לעשות מה שבא לך מקווה שהבנת ג:לא זוכר ... ד:SetBkCOlorהיא צובעת את הרקע של המילים כמו שבאייסקיו אם יש לך אם אתה רוצה פשוט שיהיה לך כפתור צבעוני כפי שאמרת תוכל לעשות זאת עיי ביטמפ או עיי אייקון תלמד את זה זה לא קשה דוגמא מצורפת לזה
 

gilad_no

New member
למה הוא לא פונה אלייך?

כבר אמרתי לך, לא נראה לי שאתה ברמה שלי
נ.ב שלחתי לך אימייל עם כמה שאלות לגבי הקורות חיים. אם אתה רציני, תתייחס אליו
 

ברשדל

New member
תודה

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

philips

New member
מה בדיוק

חשבת שתקבל מיד לאחר סיום תואר נחשב או לא בבן-גוריון או בכל מקום אחר???? שטיח אדום? לשכה? רכב? 24 נטו בחייאת.... 8 ברוטו למהנדס "טרי" וחסר ניסיון - זה בהחלט סביר ואף מכובד מאוד בהתחשב במצב....תסתכל מסביב... אנשים כאן ובכלל עדיין חיים באשליה שהייתה בתקופת ה HYPE - שלעניות דעתי הייתה מטופשת /לא מוצדקת וגרמה לנזק רב. נסיון הוא בעייתי למדוד ומקצועיות בעייתית עוד יותר למדידה ולכן הם אומנם פרמטרים חשובים מאוד ולא פחות חשובים מתואר - אך הם לא מורידים במאום את חשיבותו של התואר.. ואגב - לגבי מה שאמרת על התואר... אני מכיר הרבה בוגרי טכניון במדעי המחשב/חשמל שיחלקו על דעתך ובגדול. הרבה מאוד פרוייקטים/סמינריונים/פיתוח במהלך הלימודים שהוא משולב בעבודה במהלך הלימודים עם חברות הייטק - אינו דבר שהולך ברגל ובטכניון הוא חלק מהלימודים (למי שרוצה)
 

hazgul

New member
אכן

קחו לדוגמה את PHP, גרסה שלוש שלה פותחה ע"י שני סטודנטים בטכניון (זאב סורסקי ואנדי גוטמנס). כיום מליוני אתרים משתמשים בה.
 

shed

New member
ברשותך... או בלי רשותך

אני מסיים עכשיו (עוד שבועיים :) הנדסת חשמל בבן גוריון. ולא! אני לא חושב שבזבזתי את הזמן 4 שנים, לא, לא למדתי "חומר תיאורטי בגרוש שלא שווה הרבה" אלא להיפך! אני עובד היום, והרבה מהחברים שלי נקלטו יפה מאוד בתעשיה. כולם, ללא יוצא מהכלל משתמשים בחומר ובידע שנרכש במהלך הלימודים. בניגוד לתכנות, אין שום סיכוי ללמוד את החומר הזה באופן עצמאי. ולראיה, אתה יכול למצוא הרבה מתכנתים בוגרי קורס הסבה או לחילופין כאלה עם "ידע מהבית" אבל לא תמצא מהנדס חומרה אחד שלא עבר במוסד אקדמי זה או אחר ולמד הנדסת חשמל או אלקטרוניקה. אני לא יודע איזה תואר נחשב בהנדסה אתה מסיים (תעשיה וניהול???) אבל זה בטוח לא חשמל, ואם כן, אז כנראה הממוצע שלך על הפנים. גם מבחינת המשכורת, בשנתיים האחרונות (בהן עבדתי כסטודנט) הרווחתי יפה מאוד (לא זה לא היה 22 ברוטו - אבל זו היתה משכורת בהחלט יפה ורכב), וגם עכשיו, כשאני על תקן מהנדס מתחיל, המשכורת יפה ומכובדת, יש אוטו, יש פלאפון, יש תנאים. ושוב: אני לא היחידי בסטטוס הזה. אז נכון, היה משבר, ועכשיו מתחילים לצאת ממנו. ואם לפני שנתיים כל דרדק שרק סיים ללמוד וחשב שהוא הכי כלי בעולם היה מקבל משכורת התחלתית של 17-18 אז היום המשכורות ירדו בממוצע ב-25% אבל הן נשארו יפות מאוד. הנתונים המספריים האלה לא יצאו מהראש שלי, תעשה בירור כמה מרוויח מהנדס מתחיל באינטל, מוטורולה או ti. לסיכום, אין לי ספק בכלל בתואר אקדמי מעיד על יכולת של אדם. נכון, תואר במדעי המחשב הוא (לפעמים) הרבה פחות פרקטי, ונכון שמי שעבד עם mfc או דלפי שנתיים ומכיר בע"פ את כל האובייקטים יוכל לתכנת gui יותר טוב, אבל אין לי ספק שאם נצטרך להרים רשת מבוזרת ולחשוב על אלגוריתמים מבוזרים לביצוע פעולות כאלה ואחרות הוא יהיה פחות טוב ממי שטחן גרפים במשך 3 שנים. הנדסת חשמל (או אלקטרוניקה) זה כבר סיפור קצת שונה: התואר מאוד פרקטי. יש הרבה חומד תיאורטי שבלעדיו אין בכלל מה לדבר על פרקטיקה, יש הרבה חומר וידע מעשי שנרכש במהלך הלימודים. ורק בתור דוגמא ניתן את הפרוייקט ההנדסי. נכון שיש כאלה שלוקחים אותו כבדרך אגב אבל יש מספר חברות סטרטאפ מצליחות שקמו בעקבות פרוייקטים. ואם דיברנו על הכלל, אז הנה הפרט: אני עובד החל מתחילת שנה ב´. נכון בהתחלה הייתי מתכנת (ידע מהבית ולא מהלימודים), אבל זאת היתה עבודה זמנית רק כדי להחזיק את האוניברסיטה. מתחילת שנה ד´ אני עובד במקצוע, רוכש נסיון, ומגלה כל יום מחדש כמה חשוב החומר התיאורטי שלמדתי. (אני יושב בעבודה עם קלסר שלי משנה ג´ כדי לנתח אלגוריתם קידוד והשפעתו על ה-snr במערכת). לא, לא חיכו לי עם שטיח אדום, ואני לא מליונר (עדיין :) אבל יש לי משכורת שמספקת אותי, יש לי את כל התנאים בעולם שרק יכולתי לבקש, והכי חשוב: יש לי סביבת עבודה נעימה, עם אנשים טובים, שמהווה לי חממה להתפתחות. אה, ובקשר לפרוייקט: אני ממשיך לתואר שני, והתיזה שלי תהיה מבוססת עליו... מאמר אקדמי ראשון כבר התחלנו לכתוב
 

gilad_no

New member
דני,

אני אפילו לא מתכוון לחזור על טענותיי שוב. אני מכיר את שד אישית והוא יודע בדיוק מה המצב אצלי בחברה (כולל העובדה ששקלנו להעסיקו "גם ללא תואר ביד")
 
למעלה