Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
#include "Fenster.h"
#include <windows.h>
Fenster::Fenster(WNDPROC prozedur)
{
//Art des Fensters
//Bei Horizontaler/Vertikaler Änderung neuzeichnen
wc.style = CS_HREDRAW | CS_VREDRAW;
//Angabe welche Methode für die Nachrichten Verarbeitung zuständig ist
wc.lpfnWndProc = prozedur;
//Zusätzliche Speicherreservierung, wird nicht benötigt
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
//Angabe wer das Fenster benutzen darf
wc.hInstance = GetModuleHandle(NULL);
//Standard Cursor verwenden (alternativ 0 für keinen)
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
//Lade Standard Icon
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
//Hintergrundfarbe weiß
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
//Name der Fensterklasse
wc.lpszClassName = (LPCWSTR)"Nur ein Fenster";
//Kein Menü
wc.lpszMenuName = NULL;
//Anmeldung an den Fenstermanager von Windows
RegisterClass(&wc);
handle = CreateWindow(
(LPCWSTR)"Nur ein Fenster", //Klassenname des Fensters
(LPCWSTR)"Nur ein Fenster", //Test in der Titelleiste
WS_OVERLAPPEDWINDOW, //Stil des Fensters
CW_USEDEFAULT, // X-Position auf dem Monitor
CW_USEDEFAULT, // Y-Position auf dem Monitor
CW_USEDEFAULT, // Fensterbreite
CW_USEDEFAULT, // Fensterhoehe
NULL,
NULL,
GetModuleHandle(NULL), //Angabe zum Programm
NULL);
//Nachrichtenschleife
/*while (GetMessage(&msg, NULL, 0, 0))
{
//Weiterleiten der Nachrichten an die jeweilige Methode
DispatchMessage(&msg);
}*/
}
HWND& Fenster::getHandle()
{
return handle;
}
#include "ClientNetzwerk.h"
#include <windows.h>
#include <vector>
#include "Operator.h"
#include "netzwerk.h"
#include <algorithm>
#include "Fenster.h"
using std::string;
ClientNetzwerk::ClientNetzwerk(Operator* poOperator)
: vsChatter(), fenster(&ClientNetzwerk::WndProcCN), clientSocket()
{
this->poOperator = poOperator;
//this->clientSocket = new SOCKET();
}
void ClientNetzwerk::start(char* pcIP, u_short iPort)
{
//Winsockets starten
sMeldung = startWinSock();
this->poOperator->meldungEingegangen(&sMeldung);
//Socket TCP/IP Tauglichen machen (Konstruktor aufruf)
sMeldung = socketErstellen(clientSocket);
this->poOperator->meldungEingegangen(&sMeldung);
//Socket auf weiteres Fenster umleiten
sMeldung = aufFensterUmleiten(
clientSocket,
fenster.getHandle(),
FD_ACCEPT | FD_WRITE | FD_READ | FD_CLOSE);
this->poOperator->meldungEingegangen(&sMeldung);
//Zum Server verbinden
sMeldung = connectTo(clientSocket, "127.0.0.1", 1000);
this->poOperator->meldungEingegangen(&sMeldung);
}
void ClientNetzwerk::ende()
{
beendeNetzwerk(clientSocket);
poOperator->meldungEingegangen(&string("Client ist nun nicht mehr mit dem Server verbunden."));
}
void ClientNetzwerk::neueNickListe()
{
//Bubble Sort wär hier evtl. sinnvoller (Heapsort ist zu aufwenidig um ein Element zu sortieren)
std::sort(vsChatter.begin(), vsChatter.end());
string sNicks = "";
for(int i = 0; i < vsChatter.size(); i++)
{
sNicks += vsChatter.at(i);
sNicks += "\n";
}
this->poOperator->setUserList(&sNicks);
}
LRESULT CALLBACK ClientNetzwerk::WndProcCN(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
/*char pcNachrichten[coniMAXNACHRICHTENGROESSE];
switch(LOWORD(lParam))
{
case FD_ACCEPT:;
case FD_WRITE:;
case FD_READ:
{
;//bool bNeueNachricht = empfangen(SOCKET&, char*, int);
}
case FD_CLOSE: ;
}
return 0;*/
switch (message)
{
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
}
}
Fehler 1 error C2664: 'Fenster::Fenster(WNDPROC)': Konvertierung des Parameters 1 von 'LRESULT (__stdcall ClientNetzwerk::* )(HWND,UINT,WPARAM,LPARAM)' in 'WNDPROC' nicht möglich c:\dokumente und einstellungen\administrator\desktop\neues projekt\neues projekt\clientnetzwerk.cpp 22