WIN32 - איך עושים טבלה?...

WIN32 - איך עושים טבלה?...../images/Emo26.gif

שלום! אני עובד על GUI תחת WIN32 ב-VC6. אני מנסה לעשות טבלה. השתמשתי ב-ListView. אממה... 1) אני צריך שהמשתמש יוכל לערוך את הטקסט בטבלה. 2) אני צריך שבשתי עמודות יופיע Check-Box במקום טקסט. עד עכשיו הצלחתי רק להציג טקסט (לא הצלחתי לאפשר לערוך אותו), והצלחתי לשים checkbox רק בעמודה הראשונה (עם LVS_EX_CHECKBOXES). למישהו יש הצעות?... [ובאותה הזדמנות - מישהו מכיר איזה tutorial טוב ברשת?? MSDN ממש לא מספק את הסחורה...
]
 

אמיר ט

New member
אם היית עובד ב MFC

הייתי מציע לך פקד בשם XListCtrl שעובד ממש טוב ועושה כל מה שאתה רוצה ויותר... אולי יש דברים בסגנון הזה לדברים שעובדים בלי MFC... ניסית לחפש ב codeproject ?
 
אני רוצה לקוות...../images/Emo26.gif

של-Listview יש את היכולות האלה... אני מניח שאני פשוט לא יודע איך עושים את זה...
אם מישהו מכיר את WIN32 לעומק - אני בטוח שהוא יוכל להושיע אותי...
 

voguemaster

New member
אוקיי

אתה צריך להוסיף ListView ITEMs. זה מבוצע (אם זכרוני אינו מטעני) ע"י שליחת הודעה מתאימה (שכחתי את שמה, מתחיל ב-LV, נדמה לי שזה INSERT כלשהו) אה מצאתי
. היא נקראת LVM_INSERTITEM תפקידה בכוח הוא להכניס ListViewItem אל ה-ListView. באחד הפרמטרים של ההודעה אתה מעביר מצביע למבנה LVITEM. נחמד לא ?
 
זה כבר עשיתי, אבל....../images/Emo26.gif

איך להציג טקסט בטבלה - עם זה הסתדרתי... מה שאני צריך זה שבעמודה הרביעית נניח - במקום טקסט - יהיה checkbox...
(בעמודה הראשונה, אפשר לעשות את זה בעזרת LVS_EX_CHECKBOXES - אבל לא הצלחתי לשים checkboxes בעמודות האחרות)
 

galh

New member
אתה מזוכיסט? ../images/Emo13.gif

1. תשתמש בהודעה LVM_EDITLABEL בשביל לערוך את הטקסט. 2. נפלאות ה- owner draw. אתה צריך BITMAP שמורכב שתמונה של ריבוע ריק ותמונה של ריבוע ריק עם "וי". אחר כך משתמשים ב- ImageList בשביל לצייר. הייתה לי דוגמא עובדת שכתבתי אבל היא הייתה בפרוייקט סודי (אלק...) אז לא שמרתי את הקוד.
 
אני?... ממש לא...../images/Emo26.gif

את הפרוייקטים שלי אני כותב ב-Java (או לפחות ב-C Builder)... אבל אתה יודע... אני רק בורג קטן במערכת...
לגבי התשובה שלך - אתה מדבר על BITMAP ש"מולבש" על ה-ListView??
 

galh

New member
אהה... בעיית ה"בוס" הידועה. ../images/Emo13.gif

כן. יש לך אפשרות להגיד לחלונות שאתה אחראי על הציור ואז אתה מקבל עוד כמה הודעות (גודל ריבוע, לדוגמא). בהודעה שזה אתה מתבקש לצייר אתה מקבל באחד הפרמטרים את ה- DC. אם יש לך ImageList אז אתה פשוט עושה BitBlt למספר הנכון וזהו. אם אני לא מספיק ברור או אם אתה לא מצליח, שלח לי מסר ואני אנסה לפנות קצת זמן למציאת או כתיבת דוגמא.
 
אבל אם כבר...../images/Emo26.gif

אם כבר אני מתערב ל-listview בחיים - למה פשוט לא לתקוע שם checkbox-ים לכל אורך העמודה (תא-תא)?...
 

selalerer

New member
כמה פעמים נתנו לי בפורום הזה על הרא

ש בגלל משפטים כאלו. יש לך כלי שעושה חלק מהעבודה, למה לכתוב הכל מהתחלה.
 
למעלה