Toon posts:

[C++/WIN32] MDI Window disable Resize

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik heb een aantal MDI windows. Deze maak ik op de volgende manier :
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATESTRUCT cs;
ZeroMemory( &cs , sizeof( CREATESTRUCT ) );
CreateWindowEx(
                             WS_EX_MDICHILD | WS_EX_TOOLWINDOW,
                             hWindowName,
                             hWindowTitle,
                             WS_CHILD | WS_VISIBLE | WS_SYSMENU,
                             WindowRect.left,
                             WindowRect.top,
                             WindowRect.right-WindowRect.left,
                             WindowRect.bottom-WindowRect.top,
                             hWndMDIClient,
                             NULL,
                             hInstance,
                             &cs
                           );


Nu kan je echter dit window nog resizen en dat wil ik niet meer.
Hoe kan ik dit toch disablen ondanks dat dat enabled wordt door de
WS_EX_MDICHILD.

Je kan natuurlijk de WM_SIZE afvangen maar dan verschijnt alsnog het resize
pijltje als je met je cursor over de rand gaat ...

[ Voor 7% gewijzigd door Verwijderd op 25-11-2002 13:24 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 20:46
Naast het type window dat je creeërt, kun je waarschijnlijk ook de BorderStyle oid instellen.
Check de MSDN eens zou ik zeggen.

https://fgheysels.github.io/


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Volgens mij is het inherent aan MDI dat alle child windows sizable zijn: anders hebben maximize, minimize, cascade en alle tile functies weinig zin. Ik denk dat je als uberhaupt een non-sizable MDI child nodig hebt je verkeerd met MDI aan het omgaan bent, ik kan me weinig documenten (!!!) voorstellen die je in een fixed size window zou willen tonen.

MSDN is ook vrij expliciet:
When the user opens or creates a document, the client window creates a child window for the document. The client window is the parent window of all MDI child windows in the application. Each child window has a sizing border, a title bar, a window menu, a minimize button, and a maximize button. Because a child window is clipped, it is confined to the client window and cannot appear outside it.

Professionele website nodig?


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

mwoa, voor toolwindows is het wel handig als die niet resizable zijn... de vraag is natuurlijk of je toolwindows idd ook als MDI child windows wilt gebruiken, dit bijvoorbeeld met het oog op meerdere monitoren (MDI parent gemaximalizeert op het ene scherm, alle toolwindows op het andere. Dat kan natuurlijk niet als die toolwindows MDI childs zijn)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Ik heb nog nooit ergens MDI-toolwindows gezien.

Professionele website nodig?


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

hmm ik wel hoor, maar dat valt mij dus vooral op omdat ik die windows niet op mijn andere monitor kan gooien... Ik kan alleen zo snel niet een app verzinnen die dat heeft

BTW, ik had een tijd geleden een MDI app gemaakt (in VB :r ;)) met document windows die dus niet resizable waren... Was een texture generator die 256x256 textures kon genereren. Het resizen daarvan is niet echt handig ;)

[ Voor 40% gewijzigd door .oisyn op 25-11-2002 16:01 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

is die van photoshop geen MDI-toolwindow? of is dat juist geen child, zoals .oisyn bedoeld?

Verwijderd

Topicstarter
Het enige wat ik wil bereiken door MDI te gebruiken is dat mijn MDI Child Window niet buiten mijn parent window komt. De positionerings functionaliteit e.d. gebruik ik niet.

Zoals .oisyn zegt is het dus mogelijk om een niet resizable MDI window te maken.
Iemand een beter idee dan dat ik had om dit voor elkaar te krijgen in C?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Verwijderd schreef op 25 november 2002 @ 16:00:
is die van photoshop geen MDI-toolwindow? of is dat juist geen child, zoals .oisyn bedoeld?
Photoshop-toolwindows kun je buiten de parent container slepen/resizen.

En na 5 minuten zoeken op MSDN had ik 'm dan:Microsoft Knowledge Base Article 71669 - HOWTO: Preventing an MDI Child Window from Changing Size.

[ Voor 19% gewijzigd door curry684 op 25-11-2002 22:50 ]

Professionele website nodig?


Verwijderd

Topicstarter
Bedankt,

Kon het niet vinden...
Pagina: 1