C++ - הכנסה והצגה של נתונים בWindows GUI - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

C++ - הכנסה והצגה של נתונים בWindows GUI


-Sky_Lord-

Recommended Posts

היי,

חבר שלי נחוש בדעתו למצוא נוסחא למספרים ראשוניים... עזבו אתם לא רוצים לדעת :)

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

החלק הזה פשוט, הקטע הבעייתי בשבילי זה זה:

אני משתמש בחלון GUI (תמונה מצורפת).

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

כאשר אני לוחץ על אחד הTools אני רוצה שיפתח חלון (Dialog) שבו אני יוכל לכתוב מספר (שיכנס למשתנה).

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

מישהו מוכן לעזור לי עם זוג הבעיות הנ"ל?

[attachment deleted by admin - 90 dayss]

קישור לתוכן
שתף באתרים אחרים

היי,

חבר שלי נחוש בדעתו למצוא נוסחא למספרים ראשוניים... עזבו אתם לא רוצים לדעת :)

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

החלק הזה פשוט, הקטע הבעייתי בשבילי זה זה:

אני משתמש בחלון GUI (תמונה מצורפת).

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

כאשר אני לוחץ על אחד הTools אני רוצה שיפתח חלון (Dialog) שבו אני יוכל לכתוב מספר (שיכנס למשתנה).

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

מישהו מוכן לעזור לי עם זוג הבעיות הנ"ל?

לא ראיתי את התמונה (וגם לא אמרת באיזה סביבה אתה עובד)...

נראה לי שהכי פשוט בשביל מה שאתה רוצה לעשות זה להשתמש בסביבת RAD, סטייל DELPHI / VISUAL BASIC / BORLAND C++

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

וגם לא הבנתי איזה נוסחא של מספרים ראשוניים הוא מנסה לפתח (שתעשה מה, תגיד אם מספר נתון הוא ראשוני?)

http://en.wikipedia.org/wiki/Prime_numbers

קישור לתוכן
שתף באתרים אחרים

כן, להעלות את התמונה יכול להיות חכם... :kopfpatsch:

העלתי אותה עכשיו להודעה הראשונה.

אני משתמש בDev C++

ועזוב את מה שהוא רוצה לעשות...

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

רוב התוכנה כבר מוכנה...

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

קישור לתוכן
שתף באתרים אחרים

תשתמש ב- Table Of Contents ב- ++Visual C.

עריכה: אופס, אתה משתמש ב DevCPP, לא שמתי לב. אתה משתמש ב- MFC?

(אם כן)

ערכים רלוונטיים לחיפוש:

(Modal) Dialog

GetDlgItemText / GetDlgItemInt

(or use the DataExchange way of doing things..):

DoDataExchange

DDX

בקיצור אתה מבין יש פה כמה דברים לדעת. אני מציע שתחפש tutorials על Dialogs ב- MFC.

קישור לתוכן
שתף באתרים אחרים

תודה

אני משתמש בMFC, אומנם עם ידע מועט בנושא :)

אני אעבור על זה עכשיו ואבדוק מה אני לא מבין...

ניסיתי כבר ליצור Dialog בעבר, לפי הוראות באתר מסויים, אבל משום מה זה לא היה מוכן לעבוד אצלי...

ננסה שוב

עריכה - אני עדיין מסתבך

אני לא מציל לפתוח dialog...

הנה מה שעשיתי:

בתוך הWM_COMMAND של החלון הראשי:

                case ID_TOOLS_LIST:
                    primeNumber = DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_NUMBER),
                      hwnd, WhatNumberProcedure);
                    display = prime(primeNumber);
                    break;

הTOOLS_LIST קורה כאשר אני לוחץ על הMENU.

זה מה שרשום לי בWhatNumberProcedure:

BOOL CALLBACK WhatNumberProcedure(HWND hwnddlg, UINT message, WPARAM wParam, LPARAM lParam) 
{
    unsigned int primeNumber;
    BOOL* success;
    switch (message)
    {
        case WM_COMMAND:
            switch (LOWORD(wParam))
            {
                case IDOK:
                    primeNumber = GetDlgItemInt(hwnddlg, IDD_NUMBER, success, TRUE);
                    if (success) EndDialog(hwnddlg, primeNumber);
                    else EndDialog(hwnddlg, IDCANCEL);
                case IDCANCEL:
                    EndDialog(hwnddlg, wParam);
                    return TRUE;
            }
    }
    return FALSE;
}

וזה מה שיש לי בdialog.rc:

IDD_NUMBER DIALOG DISCARDABLE  0, 0, 239, 66
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Number Box"
FONT 10, "Arial"
BEGIN

  // yada yada
 
END

שאני מנסה לקמפל הוא אומר לי:

  [Resource error] no resources

C:\Documents and Settings\Yoav2\My Documents\C++\Prime\Makefile.win [build Error] [Prime_Numbers_private.res] Error 1

עריכה - אהה, דרך אגב, אני יודע שהDialog עוד לא מוכן עד הסוף, אבל אני קודם מנסה ליצור אותו אז אני כבר יעבוד עליו...

קישור לתוכן
שתף באתרים אחרים

בשביל ליצור דיאלוג משלך (חוץ מהדיאלוגים הרגילים של OK CANCEL WARNING OR QUESTION) אתה צריך לגזור מחלקה מ- CDialog ואז ליצור אובייקט של המחלקה הזו ואז לקרוא ל- ()dlg.DoModal.

עריכה: ואתה כמובן צריך להשתמש ב- Resource Editor ליצירת מראה הדיאלוג (הדבר הכי "Visual" ב- ++Visual C :)).

עריכה נוספת: אתה משתמש בשיטה שונה, אני לא יודע אם זה אפשרי לעשות את מה שאתה רוצה בשיטה הזו (אני לא השתמשתי בה), ואם כן (נדמה לי שכן לאחר רפרוף ב- help) זה קצת יותר מסובך מהשיטה שאני הצעתי.

העריכה מכה בשלישית:

הייתי מנחה אותך קצת יותר ספציפית אבל

1. אני לומד MFC בעצמי, כך שאני יכול להטעות אותך.

2. אתה לא צריך יותר מ- MSDN: MFC בשביל להבין איך עושים את זה. יש גם אתרים אחרים ברשת כמובן ובשביל זה יש את .

3. אני מאד ממליץ על הערוץ winprog# ב- EFNet בשביל לשאול אנשים שמבינים קצת יותר ממני ;) ויהיו שמחים לעזור לך.

קישור לתוכן
שתף באתרים אחרים

תודה :)

כן מצאתי באינטרנט איך לעשות את מה שאתה כתבת, אבל זה רק סיבך לי את הקוד בטירוף... וזה גם כמובן לא עבד :(

וכמו שאמרתי, אני לא משתמש בVisual C++...

אני אסתכל על הלינק ונקווה לטוב :)

1) זה לא כאילו תעשה יותר מדי נזק, ברגע זה זה גם ככה לא עובד :)

2) כן חיפשתי שם וגם התקדמתי, אבל אין להם יותר מדי הסברים... איך ליצור את הDialog שאני רוצה אני כבר יסתדר, הבעיה היא שאני לא מצילח לפתוח Dialog בכלל...

אפילו עכשיו שסוף סוף כתבתי משהו שאמור לעבוד, הוא כותב לי:

Resource Error: No Resource

שזה בכלל מוזר...

אם אני לא מצרף את הקובץ Resource אז אין בעיה (אבל כמובן זה לא עובד), אם אני כן מצרף, שמה שכתבתי לקוח במדויק מיותר ממקום אחד באינטרנט, אז הוא רושם לי שזה לא טוב... :(

3) אני יקפוץ לשם יותר מאוחר היום, תודה

עריכה - בלינקים שנתנת הם כותבים איך להשתמש בVisual C++ על מנת ליצור את זה... זה אומר ללחוץ על איזה 5 כפתורים והוא כותב לך את הקוד לבד...

הדבר לא ממש עוזר לי :(

עירכה - הטענה העיקרית שאמרו לי שזה כנראה באג ושDEVCPP דפוק...

טוב נו, אני עובר לVC++

Microsoft ניצחו עוד קרב! :(

קישור לתוכן
שתף באתרים אחרים

במסגרת הסדנה שלי ב-REAL TIME שבה עסקתי בעיקר ב-THREADS הכנתי

כמה דוגמאות עם DIALOGBOX ועם חלונות .

הקוד שלי הוא ב-C אבל לפי דעתי לעבור מ-C ל-C++ לא יהיה בעיה כל-כך ברגע שתבין מה לעשות.

באשר לליצור DIALOGBOX זה נראה נכון אבל נסה לשים את הקוד שכתבת ב-MAIN . הנה דוגמא:

http://www2.mta.ac.il/~amitz/downloads/Counter.zip

באשר ליצרית חלון עם MENU כמו שאת רוצה כך שילחצו על כפתור ב-MENU יתבצע משהו תצטרך ליצור שכל הזמן

מקשיב להודעות:

while(GetMessage(&msg,NULL,0,0))

DispatchMessage(&msg);

ותטפל בהם בהתאם בין אם זה אומר לכתוב טקסט בחלון או לפתוח DIALOGBOX . ראה דוגמא:

http://www2.mta.ac.il/~amitz/downloads/Pong.zip

באשר ללכתוב טקסט על החלון תצטרך ךהשתמש ב- TextOut() או DrawText()

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

או בשביל לאפשר למשתמש לעבוד עם SCROLLBAR ולהסתכל רק על תחילת ,אמצע או סוף הרשימה.

הנה דוגמא: http://www2.mta.ac.il/~amitz/downloads/TLSSTAT.zip

קישור לתוכן
שתף באתרים אחרים

תודה, אני אעבור על כל זה מחר :)

בינתיים עברתי ל VC++ וזאת נראית לי תוכנה כל כך פחות טובה...

הרבה פחות נוחה לשימוש, ויש לי בעיה...

אני לא מצליח לעשות Include ל .h.

הוא לא מוצא את הקובץ...

דרך אגב הערוץ בIRC שהבאת דיי נוראי...

אף אחד שם לא מוכן לעזור... אחד היה מוכן לעזור לי רק אם אני ישלם לו או משהו...

קישור לתוכן
שתף באתרים אחרים

לכל סביבת עבודה לוקח זמן להתרגל.

visual studio (בעיקר 6, ה- .NET טיפה יותר סימפטית) רחוקה מלהיות אינטואיטיבית. תחפש tutorial פשוט על איך להתחיל לעבוד איתה.

כשמבינים מי נגד מי ב- visual studio, זה הופך להיות יותר סימפטי.

קישור לתוכן
שתף באתרים אחרים

לכל סביבת עבודה לוקח זמן להתרגל.

visual studio (בעיקר 6, ה- .NET טיפה יותר סימפטית) רחוקה מלהיות אינטואיטיבית. תחפש tutorial פשוט על איך להתחיל לעבוד איתה.

כשמבינים מי נגד מי ב- visual studio, זה הופך להיות יותר סימפטי.

כן יש בזה משהו...

אני לוקח מאחי עותק של .NET 2003, הבטא משגעת אותי...

הבעיה שאני מתגייס ביום רביעי, אני מקווה שאני אספיק לסיים! :(

למישהו יש פיתרון לבעיה שאני לא מצליח לעשות include ל .h.

הוא כותב לי שהוא לא מוצא אותו...

קישור לתוכן
שתף באתרים אחרים

ואני רק יציין את מה שאמרתי בהתחלה... בשביל כזה פרויקט קטן, למה לשבור את הראש על ללמוד משהו לא הכי טרוייואלי כמו סביבת VISUAL C++ ו MFC...

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

אני מציע שתסתכל לכיוון DELPHI / C++ BUILDER / VISUAL BASIC או אפילו PYTHON.

קישור לתוכן
שתף באתרים אחרים

קודם כל אני נהנה מהאתגר :)

דבר שני אני לא מכיר אף אחד מהם, יקח לי יותר זמן איתם...

כפי הנראה, אתה גם לא כלכך מכיר את ה MFC... בכל מקרה, תסתכל כמה שניות על VISUAL BASIC, תוך דקות ספורות, אתה תבין בדיוק איך לעשות מה שאתה רוצה..

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...