[MDI WINAPI] Jak stworzyc okno MDI Child z Resource ID
Ostatnio zmodyfikowano 2013-11-09 12:35
berkov Temat założony przez niniejszego użytkownika |
[MDI WINAPI] Jak stworzyc okno MDI Child z Resource ID » 2013-11-06 18:55:20 Hey ho... Czy ktos moglby podpowiedziec jak stworzyc nowe okno MDI (child) z Resource ID (tak jak dialog)? Czyli zamiast tego: MDICREATESTRUCT mcs; HWND hChild;
mcs.szTitle = "Nowe okno MDI"; mcs.szClass = childclass; mcs.hOwner = GetModuleHandle( NULL ); mcs.x = 20; mcs.y = 20; mcs.cx = 100; mcs.cy = 100; mcs.style = MDIS_ALLCHILDSTYLES;
hChild =( HWND ) SendMessage( hMDIClient, WM_MDICREATE, 0,( LONG ) & mcs );
Cos takiego: hChild = CreateDialog( GetModuleHandle( 0 ), MAKEINTRESOURCE( IDD_OKIENKODZIECKO ), hMDIClient, WndProc_dziecka );
gdzie oczywiscie IDD_OKIENKODZIECKO jest juz zaprojektowane w resource.rc. Jak zwykle bede wdzieczny za pomoc... b |
|
Monika90 |
» 2013-11-06 19:29:30 Tak nie można. Ale można utworzyć dialog jako dziecko dziecka. Szablon dialogu musi mieć styl WS_CHILD zamiast WS_POPUP | WS_CAPTION | WS_SYSMENU.
|
|
berkov Temat założony przez niniejszego użytkownika |
» 2013-11-06 19:33:44 Czyli przy tworzeniu MDI okienka naprawde ani nie moga miec wlasnych WindProc ani nie mozna uzyc edytora (resource.rc)? jesli dopbrze rozumiem jedyny sposob to stowrzyc okno MDI child a na nim dialog ktory go "zakryje"? |
|
Monika90 |
» 2013-11-07 12:13:38 Czyli przy tworzeniu MDI okienka naprawde ani nie moga miec wlasnych WindProc
|
Mogą mieć własną WndProc, tylko musi ona wywołać DefMDIChildProc (zamiast DefWindowProc) dla tych komunikatów, których nie obsługuje. jesli dopbrze rozumiem jedyny sposob to stowrzyc okno MDI child a na nim dialog ktory go "zakryje"?
|
Przynajmniej ja nie znam innego sposobu, ale... jest taki styl rozszerzony: WS_EX_MDICHILD, więc być może jeśli nadasz ten styl oknu dialogowemu, to CreateDialog utworzy to okno jako dziecko MDI. Ale nie sprawdzałam tego... |
|
berkov Temat założony przez niniejszego użytkownika |
» 2013-11-09 12:35:13 OK..
niestety, mam wrazenie ze WS_EX_MDICHILD tak jakby nic nie robilo, nie ma znaczenia czy jest czy nie. Ale odkrylem ze aby dialog zachowywal sie mniej wiecej jak mdi to trzeba mu dac poprostu WS_CHILD, wtedy zamyka sie w obszarze i poddaje sie ustawieniom widoku (np MDITILE_HORIZONTAL).
Ale mam jeszcze jeden problem, juz nie koniecznie dotyczacy watku wiec otworze nowy post. dzieki.
|
|
« 1 » |