נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: עזרה בגרירת תמונה ב-#c

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
Knight_Rider
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 17 September 2006
מדינה: Israel
משתמש: מנותק/ת
הודעות: 3
נשלח בתאריך: 17 September 2006 בשעה 15:37 | IP רשוּם
ציטוט Knight_Rider

שלום

אני רוצה לגרור תמונה שאני מצייר לטופס בעזרת הפונקציה DrawImage.

כלומר, ברגע שאני עושה mouseDown ואז זז עם העכבר, אני רוצה שהתמונה תצוייר מחדש, וזה יראה כאילו אני גורר תמונה על הטופס.

השתמשתי באירועים mouseDown, Move, Up  

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

כשאני עושה invalidate לטופס אז התמונה מופיעה לי שקופה ובהירה ולא רואים אותה בכל פעולת הגרירה.

כמו כן, איך אני יכול לצרף לפה קוד?

תודה



__________________
Avi
חזרה לתחילת העמוד הצג את כרטיס החבר של Knight_Rider חפש הודעות אחרות של Knight_Rider
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 17 September 2006 בשעה 16:05 | IP רשוּם
ציטוט shoshan

קוד:
[ code ] code here... [ /code]


בלי רווחים...

ויש אפשרות לעשות double buffer
אם זאת תהיה האפשרות האחרונה שתישאר לך...


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
Knight_Rider
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 17 September 2006
מדינה: Israel
משתמש: מנותק/ת
הודעות: 3
נשלח בתאריך: 17 September 2006 בשעה 17:18 | IP רשוּם
ציטוט Knight_Rider

זה הקוד:

קוד:

private void pBoard_MouseDown(object sender, MouseEventArgs e)

{

g = this.pBoard.CreateGraphics();

if(e.Button == MouseButtons.Left)

{

if (true)

{

IsRookPressed = true;

RookX = e.X;

RookY = e.Y;

}

}

}

private void pBoard_MouseMove(object sender, MouseEventArgs e)

{

g = this.pBoard.CreateGraphics();

if (e.Button == MouseButtons.Left && IsRookPressed == true)

{

Point p = new Point(e.X, e.Y);

RookX = e.X;

RookY = e.Y;

g.DrawImage(bRook, p);

pBoard.Invalidate();

g.DrawImage(bRook, p);

}

}


ה- true ב-if ב-mouseDown הוא רק בשביל הבדיקה.

שתי השורות המדוברות צבועות באדום

הקוד לא יצא כל-כך ברור כשהעברתי אותו אבל הוא די קצר ומובן



__________________
Avi
חזרה לתחילת העמוד הצג את כרטיס החבר של Knight_Rider חפש הודעות אחרות של Knight_Rider
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 17 September 2006 בשעה 17:38 | IP רשוּם
ציטוט shoshan

למה שלא תשתמש ב-picture box ?

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
Knight_Rider
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 17 September 2006
מדינה: Israel
משתמש: מנותק/ת
הודעות: 3
נשלח בתאריך: 17 September 2006 בשעה 18:02 | IP רשוּם
ציטוט Knight_Rider

כי אני כותב משחק שחמט וזה אומר שאני אצטרך להכניס הרבה מאוד controls.

בהתחלה שיבצתי בכל המשחק controls של panels ו-pictureboxes אבל אחרי שהייתה לי בעיה עם תזוזת הכלים (כשגררתי כלי, כלומר picturebox) שהיה על פני panel הוא נעלם לי ברגע שהוא יצא מה-panel ולא כל כך ידעתי מה לעשות. ולאחר ששאלתי נאמר לי ש-controls רבים מכבידים על התוכנית ובלי קשר לזה, זה לא תפקידים. הם אמורים להכיל דברים. ייעצו לי לצייר את הלוח והכלים.

יש פתרון?



__________________
Avi
חזרה לתחילת העמוד הצג את כרטיס החבר של Knight_Rider חפש הודעות אחרות של Knight_Rider
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה