Toon posts:

[VB6] Custom control verdwijnt achter andere controls

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een multi column box gemaakt op basis van een textbox, commandbutton en een mshFlexgrid. Als het control uitklapt verdwijnt het achter andere controls en verdwijnt het bij de rand van het frame waar het zich op bevindt. met ZOrder kan ik wel voorkomen dat hij erachter valt maar ik heb liever een oplossing in de ocx. (usercontrol.ZOrder is niet tot mijn beschikking in de usercontrol-code) Tevens is hier niet het tekenen over de rand van het frame heen opgelost. Waarschijnlijk heb ik een API-call nodig maar door het API bos zie ik geen bomen meer. Tips?
Google, Forums, Support.microsoft.com en msdn kon ik het niet vinden!

Verwijderd

Topicstarter
niemand?

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Je zou SetWindowPos api call kunnen proberen :S
Heb geen flauw idee hoe het werkt qua custom controls in VB :(

  • IFASS
  • Registratie: April 2003
  • Laatst online: 15-08 09:14
Ik heb veel geprogrameerd in VB (doe ik nog), ik zit nu op m'n werk, als ik thuis ben zal ik even kijken

Verwijderd

Topicstarter
[vbcode]
Public Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
[\vbcode]
Zorgde ervoor dat het control naar de voorgrond komt. Alleen paint het control nog steeds niet over het frame heen

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Ik zal eens kijken vanavond, ik heb nog wel code in Delphi waarbij ik een customcontrol heb die gewoon rondvliegt op het Desktop. Maar toch nog steeds een venster als eigenaar heeft ipv van de handle van de Desktop. Hierbij gebruikte ik iig SetWindowPos api call.

SetWindowPos op msdn

Ik heb SetWindowPos gebruikt om een listbox te laten zien in een editor; en toch de editor zijn focus te laten houden.

[ Voor 12% gewijzigd door alienfruit op 08-07-2003 09:54 ]


Verwijderd

Topicstarter
[code]
Dim lResult As Long
lResult = SetWindowPos(UserControl.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE)
[\code]
Geeft een 1 terug maar het control wil nog steeds niet over de rand van het frame painten.
Moet ik andere parameters gebruiken of is dit niet de juiste methode?

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Argh. Ik wist dat ik wat was vergeten te doen gisteravond. Overigens wil je de control buiten het venster (dat frame) laten vallen?

In Delphi gebruik ik onder andere SetWindowPos om een floatable control te maken; dus een control die normaal gedocked is floatable te maken dus dat ie gewoon ergens zweeft ipv. dat het alleen op het form zichtbaar is.

[ Voor 46% gewijzigd door alienfruit op 09-07-2003 10:16 ]


Verwijderd

Topicstarter
Het is een combo box die als hij uitklapt buiten het frame moet kunnen komen waar het zich op bevind

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Aah. Okay. In principe zou dit wel kunnen hoor. :) Tisch in iedergeval een hWnd e.d. probleem. Ik zal vanavond eens kijken, of later vandaag als ik tijd heb.

[ Voor 52% gewijzigd door alienfruit op 09-07-2003 12:08 ]


Verwijderd

Topicstarter
Moet ik nu SetWindowsPos gebruiken of niet?

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Uhm Sorry. Stalknecht ik heb nog geen tijd gevonden om het uit te zoeken. Ben druk bezig met afronden van een cd-rom productie op het werk.

Maar:
SetWindowPos( Handle, HWND_TOPMOST, x, y, w, h, SWP_NOACTIVATE or SWP_NOMOVE );

SWP_NOMOVE = verplaats window niet
SWP_NOACTIVATE = geactiveerd venster niet, dus parent BEHOUD focus

maar ik zal het eens uitzoeken morgen dan is de deadline ;)

Verwijderd

Topicstarter
Ik krijg het met SetWindowPos niet voor elkaar
[code]
SetWindowPos( UserControl.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE)
[\code]
Doe ik iets fout of heeft iemand nog een alternatief ?

Verwijderd

Topicstarter
Het moet op nt4.0,2000 en XP werken.
Ik test op XP

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

is het overigens een bezwaar als ik mogelijke voorbeeldcode aanlever in Delphi/Pascal? Ik heb VB niet meer gebruikt sinds versie 4.0. Dus ben een beetje vergeten hoe het werkt.

Verwijderd

Topicstarter
Iets is beter dan niets

modbreak: heren kunnen jullie de slowchat svp via MSN/ICQ of mail doen? Tis hier nu al 4 dagen lang 2 mensen die oneliners zitten te typen en daarmee constant het topic onnodig kicken. Danku

[ Voor 84% gewijzigd door curry684 op 12-07-2003 10:52 ]


Verwijderd

Topicstarter
kick
Pagina: 1