Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Hardwaretasten eines Pocket PC abfragen mit embedded C++ 4.0

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
01.07.2005, 11:07 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


dein thread ist im grunde überflüssig, da windows die funktion erst aufruft sobald eine taste wieder losgelassen wird, d.h es wird nicht blockiert, diese On*-Funktionen sind (normalerweise) "Callback"-Funktionen, d.h du musst sie nicht explizit aufrufen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
01.07.2005, 11:16 Uhr
kox




Zitat von Tommix:
Hallo,
naja ein Funktionsaufruf sähe so aus:

C++:
cwnd->OnKeyUp(nChar,nRepCnt,nFlags);


Dies und das machen, sollte dann die Funktion.
Aber warum machst Du eine überladene virtuelle Funktion in der abgeleiteten Klasse auf einmal static?

Gruß, Tommix


Das mit dem static ist falsch, das hatte ich nur vorhin mal reingeschrieben, weil es dort nen Fehler gab.

Aber wo schreibe ich denn das diesunddas, in der Header-Datei?

@Flosoft
Also, das ganze läuft ja eigentlich unter Java, da ist ein Fenster, und wenn das offen ist, sind die windowsinternen Tastenfunktionen blockiert. Und um die ganze Zeit, während das Fenster auf ist, die Tasten mit meinen gewünschten Funktionen zu belegen, brauche ich doch einen Thread, oder nicht? Ja, und die Funktion soll nicht explizit aufgerufen werden, sondern gestartet werden, wenn eben eine Taste gedrückt bzw. losgelassen wird. Wo schreibe ich dann, was bei dem On* passieren soll?

Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
01.07.2005, 11:50 Uhr
Tommix




Zitat von kox:

Aber wo schreibe ich denn das diesunddas, in der Header-Datei?


Wenn Du eine Klasse schreibst, hast Du üblicherweise einen Header und ein CPP-Datei.
Der Header sieht meinetwegen so aus:

C++:
#pragma once

class MyCWnd : public CWnd
{
public:
    MyCWnd();
    virtual ~MyCWnd();

    afx_msg void OnKeyUp (UINT nChar, UINT nRepCnt,UINT nFlags);
};


und die CPP-Datei dann so.

C++:
#include "stdafx.h"
#include "MyCWnd.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

MyCWnd::MyCWnd()
{
}

MyCWnd::~MyCwnd()
{
}

void MyCWnd::OnKeyUp (UINT nChar, UINT nRepCnt,UINT nFlags)
{
    // tue dies und das
}



- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
01.07.2005, 12:05 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hast du nicht die Message-Map vergessen? oder braucht man die in CE nicht? sonst ruft Windows natürlich nicht den Handler auf? Ansonsten sollte die OnKeyUp-Funktion durch das Windows aufgerufen werden. Durch den Attach-Aufruf sollte er imho auch die WindowProc-Methode "anzapfen", egal von welchem Framework das Fenster erstellt wurde.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
01.07.2005, 12:14 Uhr
Tommix



Das nennt man nicht "vergessen" sondern "der Einfachheit halber weglassen".
Von CE hab ich keinen Schimmer, aber untern dem normalen VC macht man so was eh mit dem Klassen Assi und dann fehlt nichts.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
01.07.2005, 12:26 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


aso naja ich bin bei sowas immer vorsichtig und habs erwähnt nicht das es deswegen dann bei ihm nicht geht weil ers einfach rauskopiert hat oder so...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
01.07.2005, 13:19 Uhr
kox



Meint ihr damit das Registrieren der Tasten für meine Anwendung?

Das mache ich mit www.pocketpcdn.com/articles/handle_hardware_keys.html,
mit dem STUtil, damit solle das sehr schön gehen, ich bekomm grad nur kryptische Fehler dabei :

uafxwced.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in coredll.lib(COREDLL.dll)
uafxwced.lib(afxmem.obj) : warning LNK4006: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in coredll.lib(COREDLL.dll); second definition ignored

Ich hab das in dem dortigen Forum mal gefragt, falls ihr damit was anzufangen wißt, ich höre (bzw. lese). Danke auf alle Fälle erstmal, Tommix und FloSoft, ich bin schon einen guten Schritt weiter!

Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: