Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[MDI WINAPI] Jak stworzyc okno MDI Child z Resource ID

Ostatnio zmodyfikowano 2013-11-09 12:35
Autor Wiadomość
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:
C/C++
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:
C/C++
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

P-95483
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.
P-95486
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"?
P-95487
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...
P-95530
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.
P-95756
« 1 »
  Strona 1 z 1