Toon posts:

[VC++] Venster actief?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik de volgende code om via een knop een dialoog in een MDI formulier te krijgen.

if (!IsWindow(pStudBeheerDlg->GetSafeHwnd()))
{
pStudBeheerDlg->Create(this);
pStudBeheerDlg->ShowWindow(SW_SHOW);
}

Properties van Child staat met titelbalk enabled.

Alleen wordt het venster niet actief (de titelbalk wordt niet blauw).

Verder werkt het wel, alleen nog een groot probleem is dat een tekstvak niet met de muis geactiveerd kan worden. Alleen met tabstops kun je dus het tekstvak bereiken.

Kent iemand dit probleem? Maar nog liever, heeft iemand een oplossing?

Bedankt,

Dustin.

Verwijderd

in de win32-api is er zoiets als:
code:
1
  SetFocus(hWnd);

Dan word je window gefocused en dan word de titel blauw.

Al weet ik niet of je dat bedoeld.

Verwijderd

Topicstarter
Die lijkt niet te werken:

Ik heb ook deze al geprobeerd:
SetForeGroundWindow()
SetActiveWindow()

die lijken ook niet te werken.

Verwijderd

er is ook zo iets als
code:
1
  SendMessage(hWnd, WM_SETFOCUS, bla, bla);

maar dit is geloof ik precies wat de SetFocus functie doet.. Maar je kan het proberen.

Ook is er nog een ShowWindow api-functie die laat een window zien, je kan (als het goed is) hier een paramter meegeven waarmee je zegt dat ie ook actief word.

Maar de details over de parameters moet je ff terugzoeken ergens.

Verwijderd

Topicstarter
De SW_SHOW zou eigenlijk de window al moeten activeren. Al die functies lijken gewoon echt niet te werken.

Hoe kan dit???

Verwijderd

werkelijk geen idee, ik heb er nooit problemen mee gehad.
Omdat het een MDI child window is misschien.

Verwijderd

Topicstarter
Zodra je de titelbalk weghaalt werkt het allemaal goed, alleen zijn de dialoogvenster dan niet meer te verplaatsen binnen het MDI formulier.

  • The End
  • Registratie: Maart 2000
  • Laatst online: 12:22

The End

!Beginning

Volgens mij is een CMDIChildWnd een framework en moet je daar ook nog gewone CWnd's in plaatsen om het te laten werken.
Tevens moeten de classes geregistreerd worden in PreCreateWindow(CREATESTRUCT& cs). Met AfxRegisterWndClass.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

offtopic:
MDI is een anachronisme en wordt geleidelijk aan door MS zelf steeds minder gebruikt en steeds meer verzwegen....

Professionele website nodig?


  • The End
  • Registratie: Maart 2000
  • Laatst online: 12:22

The End

!Beginning

Op maandag 15 april 2002 13:58 schreef curry684 het volgende:
offtopic:
MDI is een anachronisme en wordt geleidelijk aan door MS zelf steeds minder gebruikt en steeds meer verzwegen....
Hoe kom je daar bij? Wat gebruikt Microsoft zelf dan voor een dergelijke interface? (Zoals Office / Visual studio)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op maandag 15 april 2002 14:27 schreef The End het volgende:
Hoe kom je daar bij? Wat gebruikt Microsoft zelf dan voor een dergelijke interface? (Zoals Office / Visual studio)
Office 2000 en later zijn geen MDI meer, en in Visual Studio.NET moet je de MDI optie eerst zoeken voordat je 'm aan kunt schuppen ipv tabbed mode.

Professionele website nodig?

Pagina: 1