עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

פונקציית DestroyWindow ב- C++

Featured Replies

פורסם

כתבתי את הקוד הבא:


CWnd* firstWin = FindWindow(NULL, "FirstWin");
firstWin->DestroyWindow();

הקוד הנ"ל מוצא את החלון הפתוח firstWin אך משום מה הוא לא סוגר לי אותו.

למישהו יש רעיון? האם יש פונקציה אחרת לסגירת החלון?

תודה מראש, שלומי

פורסם

הניחוש שלי זה שאתה מערבב MFC יחד עם win32 api.

תבדוק אם FindWindow מחזיר HWND או CWnd*.

פורסם
  • מחבר

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

בכל מקרה, אני זוכר שפתחתי פרוייקט MFC, ולאחר בדיקה רשום שה-FindWindow מחזיר CWnd*.

פורסם

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

זה כמו לבשל ולומר "נו, מה רע לשים בעוגה שלי קמח רגיל במקום קמח תופח? זה אותו דבר, לא?"

פורסם

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

פורסם

החלון שלך ?

אנלוגיה גם שגויה ולא קשורה לכלום, כי אחת מהם בכלל לא קיימת.

פורסם

huh? מה לא קיימת?

בכל מקרה, לשאלה:

בתיעוד של DestroyWindow של ה-win api כתוב שאתה לא יכול להשתמש בה על מנת להשמיד חלון שרץ ב-thread אחר (ומכאן גם שאתה לא יכול להשמיד חלון של תהליך אחר). לא הצלחתי למצוא משהו דומה ב-DestroyWindow של MFC, אבל יכול להיות שגם עליו חלה המגבלה הזו.

תבדוק את ערך ההחזרה של הפונקציה. אם היא מחזירה false, זה אומר שהיא נכשלה.

פורסם

יפה שהגעתם לתשובה, בכל מקרה הקומפיילר יגיד שיש המרה מסוכנת בין HWnd ל CWnd* אם זה מה שהיה קורה במקרה הראשון.

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.