[VC++] Enter afvangen

Pagina: 1
Acties:

  • TheGhostInc
  • Registratie: November 2000
  • Niet online
Zoals het topic titel al aangeeft, ipv dat je met een Enter het dialog closed wil ik met Enter doorgaan naar het volgende veld.
(Dus het volgende veld in de TAB STOP range, dus eigenlijk een Enter converteren naar een Tab)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Waarom willen mensen toch altijd de standaard user interface aanpassen?

Mensen verwachten juist dat je met tab naar een volgend veld gaat. Het hele ID van zo'n windows API is dat elk programma ongeveer hetzelfde werkt, en dat in een eerste oogopslag duidelijk te zien is wat je met een bepaalde voorgeschotelde UI kunt doen.

Hoe zou jij het vinden als het sluitkrijsje ineens linksboven stond ipv rechtsboven omdat de programmeur dat leuker vond?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • TheGhostInc
  • Registratie: November 2000
  • Niet online
Mensen hebben *HEEL ERG* de neiging om op ENTER te rossen zodra ze eeb invul veld hebben ingevuld.

Het gaat ermij niet om wat de "standaard" interface is, maar wat mensen native doen.

Door die irritante enter sluit mijn venster ZONDER de database te sluiten waardoor ik me een partij errors krijg.
Dus opzich wil ik de enter vooral afvangen, zodat ie niks meer doet, da's eigenlijk al bijna voldoende.

Verwijderd

Als je een beetje beter had gelezen dan is dit eerder een verbetering dan een totale wijziging...

veel mensen rammen per ongeluk op enter na het invoeren van een veldje in de hoop dat de inhoud bevestigd is om zo verder te kunnen gaan met het volgende veld om verder te tikken....

iig het moet mogelijk zijn en volgens mij staat het op de MSDN cd beschreven. onder standard events gebeuren... succes

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Als je venster sluit zonder de database te sluiten, en dit allemaal error's veroorzaakt, dan is er iets anders mis lijkt mij zo. Dit zou betekenen dat je een mogelijkheid in je programma hebt gebouwd om je systeem onderuit te halen. Dit wordt ook wel een bug genoemd. ;)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Op vrijdag 26 juli 2002 12:59 schreef TheGhostInc het volgende:
Mensen hebben *HEEL ERG* de neiging om op ENTER te rossen zodra ze eeb invul veld hebben ingevuld.

Het gaat ermij niet om wat de "standaard" interface is, maar wat mensen native doen.

Door die irritante enter sluit mijn venster ZONDER de database te sluiten waardoor ik me een partij errors krijg.
Dus opzich wil ik de enter vooral afvangen, zodat ie niks meer doet, da's eigenlijk al bijna voldoende.
is het dan maybe niet aantrekkelijker om wanneer er die bepaalde class wordt afgesloten hem dat op te vangen in de post-situatie en die database verbinding af te sluiten? dus met ~classname() etc....

Verwijderd

Default button vinkje weghalen bij je IDOK button verders gewoon lekker de default windows gui houden ze tabben maar gewoon..

  • TheGhostInc
  • Registratie: November 2000
  • Niet online
Op vrijdag 26 juli 2002 13:03 schreef Yarvieh het volgende:
Default button vinkje weghalen bij je IDOK button verders gewoon lekker de default windows gui houden ze tabben maar gewoon..
dat tabben vind ik prima, maar dat vinkje bij de IDOK button wordt lastig.... ik heb geen IDOK button op dat Dialog staan.


O ja, die bug... die komt puur voor omdat de ONOK code niet standaard wordt weergegeven, maar wel een standaard handler heeft. Ik heb opzich dat gedeelte brak gecoded, maar die bug is imho niet echt mijn fout, moeten ze de functies OnCancel en OnOK gewoon maar in de code zetten ongeacht of er een button op staat die die gebruikt, aangezien er wel een toets is die het gebruikt.

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
dat kun je oplossen dmv een API-functie ...

de functie wil ik u wel eens geven:

Postmessage(Handle, WM_NEXTDLGCTL, 0, 0)

met deze message zal hij naar het volgende component springen.

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • The End
  • Registratie: Maart 2000
  • Laatst online: 11:50

The End

!Beginning

Op vrijdag 26 juli 2002 13:12 schreef TheGhostInc het volgende:

[..]

dat tabben vind ik prima, maar dat vinkje bij de IDOK button wordt lastig.... ik heb geen IDOK button op dat Dialog staan.


O ja, die bug... die komt puur voor omdat de ONOK code niet standaard wordt weergegeven, maar wel een standaard handler heeft. Ik heb opzich dat gedeelte brak gecoded, maar die bug is imho niet echt mijn fout, moeten ze de functies OnCancel en OnOK gewoon maar in de code zetten ongeacht of er een button op staat die die gebruikt, aangezien er wel een toets is die het gebruikt.
Uuuuhhmmm, OnCancel en OnOk staan gewoon in CDialog. Als jij de functie van OnCancel en/of OnOk wil veranderen, dan zal jij die functies moeten overerfen.. (Dat is de hele opzet)

Verwijderd

code:
1
2
3
4
if (KeyPress == <enter>)
{
   KeyPress = <tab>;
}

:?

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
code:
1
2
3
4
5
6
7
onKeyPress(Key, ...)
{
   if( Key == vbReturn)
   {
    Postmessage(...)
   }
}

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


Verwijderd

Waarom sluit ie af met Enter zonder dat je een default button hebt?

Verwijderd

Op vrijdag 26 juli 2002 12:56 schreef Janoz het volgende:
Waarom willen mensen toch altijd de standaard user interface aanpassen?

Mensen verwachten juist dat je met tab naar een volgend veld gaat. Het hele ID van zo'n windows API is dat elk programma ongeveer hetzelfde werkt, en dat in een eerste oogopslag duidelijk te zien is wat je met een bepaalde voorgeschotelde UI kunt doen.

Hoe zou jij het vinden als het sluitkrijsje ineens linksboven stond ipv rechtsboven omdat de programmeur dat leuker vond?
Als je op deze manier denkt, waarom houd jij je uberhaubt bezig met programmeren? Als programmeur wil je toch ook dingen verbeteren, als hij vind dat hij een handigere oplossing heeft, waarom zo'n post doen ??

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 01-09 08:15

LauPro

Prof Mierenneuke®

Op vrijdag 26 juli 2002 14:57 schreef unteraarsch het volgende:
Als je op deze manier denkt, waarom houd jij je uberhaubt bezig met programmeren? Als programmeur wil je toch ook dingen verbeteren, als hij vind dat hij een handigere oplossing heeft, waarom zo'n post doen ??
Nee ik ben het met hem eens, als je met dos hebt gewerkt dan merkte je dat _elk_ programma, maar dan ook _elk_ programma een eigen interface had. Neem nu wp oid. Daar had je de functietoetsen hard nodig. Andere hoek: 'Deluxe Paint'. Ook allemaal hun eigen menu's.

Als je software maakt dan moet het 'waterdicht' zijn. En een beetje raar verhaal dat als je op 'enter' druk dat je dan op z'n minst geen melding krijgt dat je niks hebt ingevuld (Ok bevestigt immers de gegevens die je op het formulier hebt ingevuld).

En als je dit nu allemaal hastikke moeilijk vindt, dan doe je het toch web-based? daar heb je juist wel de vrijheid om je eigen lay-out te verzinnen...

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • The End
  • Registratie: Maart 2000
  • Laatst online: 11:50

The End

!Beginning

Op vrijdag 26 juli 2002 14:57 schreef unteraarsch het volgende:

[..]

Als je op deze manier denkt, waarom houd jij je uberhaubt bezig met programmeren? Als programmeur wil je toch ook dingen verbeteren, als hij vind dat hij een handigere oplossing heeft, waarom zo'n post doen ??
Er mag toch op gewezen worden dat je je beter aan de standaard interface kan houden??? Als iemand hier vraagt om de linker en de rechter muisknop om te draaien (omdat het handiger zou zijn), dan zet jij daar toch ook je vraagtekens bij?
Dat er een aantal klunzen zijn die niet (en nooit zullen) snappen dat je op tab moet drukken i.p.v. enter,dat is nou juist waar de programmeur wat aan kan doen. Door te melden dat niet alle velden zijn ingevuld i.p.v. het programma te laten crashen.

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 01-09 08:15

LauPro

Prof Mierenneuke®

Op vrijdag 26 juli 2002 15:29 schreef The End het volgende:
Door te melden dat niet alle velden zijn ingevuld i.p.v. het programma te laten crashen.
Op vrijdag 26 juli 2002 15:05 schreef LauPro het volgende:
En een beetje raar verhaal dat als je op 'enter' druk dat je dan op z'n minst geen melding krijgt dat je niks hebt ingevuld (Ok bevestigt immers de gegevens die je op het formulier hebt ingevuld).
:z :P

Maar nogmaals: Je moet het je als programmeur niet te moeilijk maken. Straks krijg je Windwos XP 2004 oid en dan zul je zien dat die dingen allemaal niet meer werken. Gebruik de standaard dat blijft het allemaal duidelijk.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • The End
  • Registratie: Maart 2000
  • Laatst online: 11:50

The End

!Beginning

Op vrijdag 26 juli 2002 15:34 schreef LauPro het volgende:

[..]


[..]

:z :P

[knip]
ja ja ja ja :) Dat was alleen om je even te helpen en het punt te benadrukken... (Of dacht je dat ik dat zelf verzonnen had :) )

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 01-09 08:15

LauPro

Prof Mierenneuke®

Op vrijdag 26 juli 2002 15:38 schreef The End het volgende:
ja ja ja ja :) Dat was alleen om je even te helpen en het punt te benadrukken... (Of dacht je dat ik dat zelf verzonnen had :) )
Ik zag het ook al wel, alleen voortaan iets anders onder woorden brangen ;) * LauPro doet dat ook vaak hor :P

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Verwijderd

Op vrijdag 26 juli 2002 15:29 schreef The End het volgende:
Als iemand hier vraagt om de linker en de rechter muisknop om te draaien (omdat het handiger zou zijn), dan zet jij daar toch ook je vraagtekens bij?
Uhh.. Nee ik zou 'm uitleggen hoe hij dat zou moeten doen (mocht ik dat weten).

Maar hij legt er idd bij uit waarom hij het doet, omdat zijn programma anders zou crashen. Dat zou voor mij persoonlijk een niet de motivatie zijn dit te doen nee. Maar daar ging de topic niet over.
Pagina: 1