Dialog ב MFC

frangelico

New member
Dialog ב MFC

יש לי יישום dialog ב MFC הבעייה היא שאני רוצה להוסיף מערך מסוג CButton שגוגלו ידוע רק בזמן ריצה. יש חי כבר את המערך מאותחל אבל אני לא מצליח להציג את הכפתורים על הדיאלוג כנראה שאני מפספס משהו הפונקצייה נראית משהו כזה
CMatrixDialog::CMatrixDialog(CWnd *parent):CDialog(CMatrixDialog::IDD, parent) { m_buttons[0].Create("1", WS_CHILD, CRect(10, 10, 20, 20), this, 21); m_buttons[0].ShowWindow(SW_SHOWNORMAL); }​
 

ilankt

New member
WS_VISIBLE

תנסה להעביר את זה בפונקציה Create של הכפתור.
 

frangelico

New member
הבעייה היא

אני מקבל שגיאת ASSERTION בשורה
m_buttons[0].ShowWindow(SW_SHOWNORMAL);​
בנראה לא ככה מציגים את הכפתור ב DIALOG
 

gilad_no

New member
אתה לא יוצר במקום הנכון.

אתה צריך ליצור אותם בWMֹINITDIALOG
 

gilad_no

New member
לא,

כמו שאמרו לך, תציין גם WM_VISIBLE וגם WM_CHILD בדגלים ליצירת כל כפתור, ואז גם אין צורך בכלל בשורה של SHOWWINDOW.
 

frangelico

New member
אני מקבל שגיאה כשאני

מוסיף את השורה
ON_WM_INITDIALOG()​
ל MESSAGE_MAP חיפשתי ב HELP צורה אחרת ולא מצאתי
 

frangelico

New member
ביטלתי את השורה הנ"ל וזה עובד

לא ברור לי למה בדוגמאות שראיתי דווקא הוסיפו את השורה הזאת תודה
 

frangelico

New member
בעייה חדשה

איך אני מקבל עכשיו את הודעות הלחיצה על אחד מה Buttons ?
 

gmorphus

New member
ON_BUTTON

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

frangelico

New member
צודק אבל

ה BUTTONS שלי דינאמיים ולא נוצרים ב RESOURCE EDITOR אני מנסה כרגע עם OnCommand.
 

ilankt

New member
תן דוגמא ../images/Emo13.gif

באמת רציתי לדעת איך עושים את זה...
 

frangelico

New member
דוגמא

BOOL CMatrixDialog::OnCommand(WPARAM wParam, LPARAM lParam) { CDialog::OnCommand(wParam, lParam); int nID = LOWORD(wParam); if(nId = SomeID) DosSomething() return TRUE; }​
בפרמטר wParam מקבלים את ה ID של הפקד ולפי זה פועלים.
 
למעלה