פורסם 2008 ביולי 2717 שנים כתבתי את הקוד הבא:CWnd* firstWin = FindWindow(NULL, "FirstWin");firstWin->DestroyWindow();הקוד הנ"ל מוצא את החלון הפתוח firstWin אך משום מה הוא לא סוגר לי אותו. למישהו יש רעיון? האם יש פונקציה אחרת לסגירת החלון? תודה מראש, שלומי
פורסם 2008 ביולי 2717 שנים הניחוש שלי זה שאתה מערבב MFC יחד עם win32 api.תבדוק אם FindWindow מחזיר HWND או CWnd*.
פורסם 2008 ביולי 2717 שנים מחבר יש מצב שאני מערבב ביניהם... מה ההבדלים ביניהם בכלל?? ולמה זה טעות לערבב אותם?בכל מקרה, אני זוכר שפתחתי פרוייקט MFC, ולאחר בדיקה רשום שה-FindWindow מחזיר CWnd*.
פורסם 2008 ביולי 2817 שנים כי אלה שתי פונקציות שונות, שעושות שני דברים שונים (אולי לוגית הן עושות אותו דבר, אבל מעשית לא) ומחזירות דברים שונים.זה כמו לבשל ולומר "נו, מה רע לשים בעוגה שלי קמח רגיל במקום קמח תופח? זה אותו דבר, לא?"
פורסם 2008 ביולי 2917 שנים huh? מה לא קיימת?בכל מקרה, לשאלה:בתיעוד של DestroyWindow של ה-win api כתוב שאתה לא יכול להשתמש בה על מנת להשמיד חלון שרץ ב-thread אחר (ומכאן גם שאתה לא יכול להשמיד חלון של תהליך אחר). לא הצלחתי למצוא משהו דומה ב-DestroyWindow של MFC, אבל יכול להיות שגם עליו חלה המגבלה הזו.תבדוק את ערך ההחזרה של הפונקציה. אם היא מחזירה false, זה אומר שהיא נכשלה.
פורסם 2008 ביולי 2917 שנים יפה שהגעתם לתשובה, בכל מקרה הקומפיילר יגיד שיש המרה מסוכנת בין HWnd ל CWnd* אם זה מה שהיה קורה במקרה הראשון.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.