DIALOG BOX

yair24

Member
DIALOG BOX

שלום, מישהו יודע אולי, למה כשאני מוסיף תיבת תמונה למסמך דיאלוג, אז לא מופיע לי שום דבר שמראה לי שהוספתי תיבת תמונה בCLASSWIZARD, למשל כשאני מוסיף תיבת טקסט אז מופיע לי בOBJECT ID´S בCLASSWIZARD משהו שנקרא IDC_EDIT1 בתיבת תמונה לא מופיע כלום למה? יאיר
 

yair24

Member
מצאתי!! אבל...

עכשיו יש לי בעיה אחרת... אני לא מצליח לטעון תמונה מתוך קובץ BMP לתוך STATIC CONTROL מישהו יודע איך עושים את זה? יש לי DC לSTATIC CONTROL מה הלאה? יאיר
 

voguemaster

New member
הא ???

DC ל-STATIC CONTROL ??? מאיפה הבאת את זה חמודי ?
שורה פשוטה שעושה את זה עם קריאה ל-API (אני לא זוכר את המקביל ב-MFC):
bit=LoadImage( hInst, path,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_LOADFROMFILE); rc=SendDlgItemMessage( hDlg, IDC_PIC1, STM_SETIMAGE, IMAGE_BITMAP, (long)bit ); DeleteObject( (void *)rc);​
אוקיי, אז שלוש שורות, SO SUE ME
הרעיון הוא לשלוח הודעת SETIMAGE לפקד הסטטי, במקרה זה ע"י שליחת הודעה ל-DIALOG (והיא מעבירה אותה פנימה לפקד). אפשר גם להשיג את הידית לפקד ולשלוח עם SendMessage אבל אין שום טעם כי זה בדיוק מה שהפונקציה הנ"ל עושה
כמובן שאם הייתה שם תמונה ממקודם אז היא תוחלף, והערך המוחזר הוא הידית של התמונה המוחלפת. אם היא לא נחוצה יותר, רצוי למחוק (חובה!) ע"י DeleteObject. אלי
 

voguemaster

New member
הערה קטנה ../images/Emo13.gif

הפעם היחידה שרציתי והשתמשתי ב-DC לפקד סטטי היה כשכתבתי COLOR PICKER של RGB. אז היה לי הכי נוח להשיג DC ולצייר ריבוע בצבע המתאים בכל פעם שהשתנה הצבע או שקיבלתי הודעת PAINT..
 

yair24

Member
ככה:

()m_static1.GetDc חבל שלא ענית לי אתמול כשהייתי צריך את זה דחוף אבל אני אנסה עכשיו... יאיר
 

yair24

Member
לא הבנתי משהו קטן...

בפונקציה LOADIMAGE יש לי HINST עד כמה שאני זוכר זה טוב לAPI אבל מה אני אמור לרשום שם בMFC? נ.ב. תודה על כל התשובות לאט לאט אני אלמד את הMFC הזה ובסוף אני אוסיף לאתר שלי שיעורים בMFC ואז יהיה אתר בעברית שמלמד MFC.
יאיר
 

voguemaster

New member
תנסה לבדוק מה המקבילה ב-MFC

כלומר, לרוב פונקציות של MFC ששייכות למחלקות כאלו ואחרות הן למעשה WRAPPERS מסביב לפונקציות ה-API הרגילות, מה שאומר שע"י חיפוש של LOADIMAGE ב-SDK תוכל למצוא גם באיזה מחלקה ב-MFC יש את הפונקציה המקבילה. בהקשר הזה, לא יודע אם צריך את ה-hInst, צריך פשוט לראות מה רשום שם.. אלי
 
למעלה