Rendszer menü az MFC ablakban

Plz, mondja meg, hogy a Mona az MFC programban végrehajtja a menüelemeket
rendszer menüablak (visszaállítás, mozgatás, átméretezés,
minimalizálja, maximalizálja, bezárja). Ablak osztály - örökölt
a CFrameWnd-től.

Ebből a listából csak azt tudom, hogyan lehet minimalizálni
CFrameWnd :: CloseWindow () és zárja be a CFrameWnd :: DestroyWindow () parancsot. És a többiek?

--
Rryk
CPU: 10.108.5.126, ICQ: 112642165.
Jabber: ***@jabber.kiev.ua.

Közzététel hírekkel
SendMessage >> WM_SIZE, WM_GETMINMAXINFO stb.

És hogyan változtatja meg a kézi átméretezést? Ie
például ha a Rendszer méretének átméretezését nyomom. menüben egy egeret kapok az űrlapon
Kereszt a közepén, és megváltoztathatom a billentyűzet méretét. És amikor Move, akkor
Mozgathatom az ablakot a kurzorral a billentyűzeten.

Hogyan tehetem ezt?

PS: Valami okból nem tudtam hívni a SendMessage-ot (WM_SIZE,
SIZE_MAXIMIZED, 0) - nem változtatja meg a méretet. Talán valahogy hibáztam
Okozok? Itt van a kód:


void CMyWnd :: OnRestore ()
PostMessage (WM_SIZE, SIZE_RESTORED, 0);
>

void CMyWnd :: OnMoveWindow ()
// Mi van itt?
>

void CMyWnd :: OnResizeWindow ()
és itt?
>

void CMyWnd :: OnMinimize ()
SendMessage (WM_SIZE, SIZE_MINIMIZED, 0);
>

void CMyWnd :: OnMaximize ()
PostMessage (WM_SIZE, SIZE_MAXIMIZED, 0);
>
..
BEGIN_MESSAGE_MAP (CMyWnd, CFrameWnd)
ON_WM_CLOSE ()
ON_WM_CREATE ()
ON_COMMAND (ID_CLOSE, OnClose)
ON_COMMAND (ID_TEXT, OnTextOut)
ON_COMMAND (ID_RESTORE, OnRestore)
ON_COMMAND (ID_MOVE, OnMoveWindow)
ON_COMMAND (ID_RESIZE, OnResizeWindow)
ON_COMMAND (ID_MINIMIZE, OnMinimize)
ON_COMMAND (ID_MAXIMIZE, OnMaximize)
END_MESSAGE_MAP ()
..

--
Rryk
CPU: 10.108.5.126, ICQ: 112642165.
Jabber: ***@jabber.kiev.ua.


BOOL SetWindowPos (const CWnd * pWndInsertAfter, int x, int y, int cx,
int cy, UINT nFlags);

Nem nulla, ha a függvény sikeres, egyébként 0.

paraméterek
pWndInsertAfter
Azonosítja a CWnd objektumot, amely megelőzi ezt az objektumot
CWnd a Z-sorrendben. Ez a paraméter lehet a CWnd vagy a mutató
Egy mutató a következő értékek egyikére:


vagy wndTopMost sem A wndNoTopMost nincs definiálva a pWndInsertAfter paraméterben.
Ez az ablak nem az aktív ablak.
Az alkalmazás nem aktiválhat egy inaktív ablakot, hogy áthelyezze a
a Z-sor felső része. Az alkalmazások megváltoztathatják a Z-sorrendet
aktivált ablak korlátozások nélkül.
A legfelső ablaknak van egy legfelső ablakja, de nem fordítva. Bármely ablak
(például egy párbeszédpanel), amely maga a legfelső ablakhoz tartozik
az ablak tetején csúcsra helyezve annak érdekében, hogy mindenki benne legyen
az ingatlan ablakai a tulajdonosuk fölött maradnak.
A Windows 3.1 és újabb verziói segítségével a Windows a Z-sor felső részébe léphet
és zárolja őket a WS_EX_TOPMOST stílusok beállításával. Ilyen legmagasabb
Az ablak azt állítja, hogy a legmagasabb pozíció akkor is el van helyezve, ha deaktiválódik.
Például a WinHelp Always On Top parancs kiválasztásával a Súgó ablak jelenik meg
topmost, és akkor is láthatóvá válik, amikor visszatér
alkalmazást.
Legfelső ablak létrehozásához hívja a SetWindowPos-ot a pWndInsertAfter-hoz
paraméter egyenlő wndTopMost, vagy állítsa be a WS_EX_TOPMOST stílust,
amikor létrehoz egy ablakot. Ha a Z-sorrend tartalmaz bármilyen ablakot
WS_EX_TOPMOST stílus, az ablak átkerült wndTopMost, érték
minden legfelső ablak tetején helyezkedik el, de a legfelső ablakok alatt. amikor
Az alkalmazás aktiválja az inaktív ablakot a WS_EX_TOPMOST bit, az ablak nélkül
Elsősorban a legfelső ablakokat mozgatja, de a legfelső ablakok alatt.
Ha a SetWindowPos meghívásra kerül, amikor a pWndInsertAfter paraméter van -
wndBottom és CWnd - legfelső ablak, az ablak elveszíti a legfelső állapotot (,
törlődik), és a rendszer az ablakot a Z-sor aljára helyezi.

Kapcsolódó cikkek