Visual C++ met enter naar volgende tekstvak

Status
Niet open voor verdere reacties.

Articer

Gebruiker
Lid geworden
4 jan 2007
Berichten
12
hoi allemaal,

ik werk al 4 maande aan een opdracht wat tot nu toe heel goed gelukt is.:p
ik heb 32 tekstvakjes en ik wil graag dat hij met een "enter" van de eerste tekstvak
naar de tweede gaat. inplaats van tab maar de tab kan je niet veranderen in Visual c++
Ik zoek me al zeker 3 weke rot naar de oplossing.
mis was het wat met cin.get() maar dat weet ik niet zeker...:confused:

Ik hoop echt dat iemand dit weet :( ik snap er niks meer van

vriendelijke groet, Arthur
 
enter

hmm je bedoelt dat k de ergens zegt:

enter = tab

maar dan met hex

ik ga het ff proberen in ieder geval bedankt voor de tip :)
 
Nee, niet helemaal. Je kunt ook zelf de cursor naar het volgende invoerveld verplaatsen als je de 'enter' invoer krijgt.
 
ok

oke ja die enter die moet ik nog vinden ik heb nu dit

void CArtScanView::OnChangeLijn1()
{
CEdit *Display;

//controleren of er een enter is gegeven.

Display = reinterpret_cast<CEdit *>(GetDlgItem(IDC_Lijn1_1));
Display-> hier moet de focus gaan verspringen
}
Lijn 1 is eerste edit box 1_1 de 2e
 
Een druk op de 'enter' toets in een invoerveld geeft gewoon een ascii teken als invoer. Je kunt dus controleren of de invoer een LF of CR is en dan de focus op het volgende veld zetten.
 
.

Ik heb dat geprobeerd maar als ik op zo'n editbox enter doe krijg ik de properties
inplaats van dat ik met enter de LF of CR in kan voeren of instelle ..
 
Je hoeft toch niks in te stellen? Je kunt gewoon met cin.get() de invoer lezen die de gebruiker je geeft via het toetsenbord. Als de invoer een LF of CR is, dan weet je dat er op enter gedrukt is en kun je de focus op het volgende veld zetten.
 
.

oww ok ik zal woensdag gelijk proberen in ieder geval onwijs bedankt
als werkt ben ik helemaal blij maar komt vast goed. ik heb het nu allemaal beter
door.

bedankt :):):):)

groet Arthur :thumb:
 
VK_ENTER kun je gebruiken om enter aan te duiden

maar t ziet ernaar uit dat je in MFC zit te werken
zult iets duidelijker moeten zijn over je programma structuur.
hoe stuur en catch je messages ???

met MFC kan ik je helaas niet helpen (deprecated)
maar anders zul je gewoon een WS_KEYDOWN message moeten zien te catchen

en SetFocus ( hWnd ) kun je gebruiken om focus te zetten
 
ik zit idd in MFC te werken .. is zeker dan moeilijker dan normaal console..
lastig allemaal.. k ga nu ff dit proberen.

Display = std::cin.get(CR)
Display->SetFocus(m_Lijn1_1);

:( k ben er nog niet helemaal uit gekomen..
is lastiger dan ik had verwacht.
 
MFC is erg bloated en ligt ondertussen al niet meer goed in de markt. Het zorgt voor veel overhead (overhead is in feite niet een slecht iets, maar wel in computer land hier).
Het hele idee van een wrapper maken (wat MFC eigenlijk is) nemen de meeste programmeurs nu zelf in handen.
Misschien dat je eens wil nadenken om het overboord te gooien .....
Het punt is dat je erg veel moet referencen over MFC (je framework) terwijl het niks toevoegt aan c++. Je leert alleen beter MFC'en maar amper beter c++'en.
En strict gezien heb je het niet nodig...het was bedoelt om je leven makkelijker te maken wat betreft control items..... maar of dat gelukt is.....ik ken eigenlijk geen (serieuze) programmeur die er nog gebruikt van maakt......
En je eigen wrapper schrijven is eigenlijk helemaal niet zo moeilijk, je zult alleen wat 'dieper' moeten referencen....
 
Laatst bewerkt:
owww oke .. hmm dat is waar maar ik heb hier toch wat gevonden

http://msdn.microsoft.com/msdnmag/issues/0700/c/

het kan dus wel.. heb zelf gezien .. ik krijg alleen het niet werkend op mijn
programmatje :shocked: van alles geprobeerd..

het programmatje wat je hier kan downloade geeft geen classes aan dus is lastig.
 
hoi allemaal,

ik werk al 4 maande aan een opdracht wat tot nu toe heel goed gelukt is.:p
ik heb 32 tekstvakjes en ik wil graag dat hij met een "enter" van de eerste tekstvak
naar de tweede gaat. inplaats van tab maar de tab kan je niet veranderen in Visual c++
Ik zoek me al zeker 3 weke rot naar de oplossing.
mis was het wat met cin.get() maar dat weet ik niet zeker...:confused:

Ik hoop echt dat iemand dit weet :( ik snap er niks meer van

vriendelijke groet, Arthur

dat je graag enter wilt drukken , hier is klein code .
vrij eenvoudig :)

Code:
int enter;
enter = cin.get();
 
Ik heb hier ook een ander code gevonden ik weet alleen niet waar ik hem neer moet zetten
mis in CtestDlg of CMainFrame.


if(pMsg->message==WM_KEYDOWN){
if(pMsg->wParam==13){ //enter or return key pressed
if(GetKeyState(VK_CONTROL)&0x8000){ //Control Key Is Pressed
if(m_ButtonOK.IsWindowEnabled())OnOK();
return TRUE;
}
pMsg->wParam=VK_TAB;
}
if(pMsg->wParam==VK_TAB&&GetFocus()==&m_ButtonOK){
m_TabPages[0]->SetFocus();
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
 
de werkende :D:D:D:D:D:D:D:D

BOOL CArtScanView::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class

if(pMsg->message==WM_KEYUP && pMsg->wParam==VK_RETURN)
GetNextDlgTabItem(GetFocus())->SetFocus();

return CFormView::PreTranslateMessage(pMsg);
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan