|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
lisandi6 Mini JLI'ler
Alter: 62 Anmeldedatum: 16.03.2009 Beiträge: 8 Wohnort: In den Bergen Medaillen: Keine
|
Verfasst am: 29.02.2012, 23:58 Titel: Anfängerfrage |
|
|
Hallo Programierer
Nachdem ich ja mein erstes normales Fenster hatte
hab ich natürlich versucht das ganze zu begreifen
und versucht möglichst viele Funktionen einzubauen.
Jetzt habe ich einen Fenstercode der etliche Funktionen hat
nur bekomme ich den Text nicht ins Fenster.
Jetzt meine Bitte an euch mir weiterzuhelfen.
Ich komme auch nach Stunden und etlichen Versuchen
nicht darauf wo der Fehler liegt.
Fehlermeldung liegt keine vor.
--------------------------------------------------------------------------------
CPP: | #include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>
#include <cstdio>
static TCHAR szWindowClass[] = _T("win32app");
static TCHAR szTitle[] = _T("003Tetris");
HINSTANCE hInst;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW |CS_OWNDC;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
if (!RegisterClassEx(&wcex))
hInst = hInstance;
HWND hWnd = CreateWindow(
szWindowClass,
szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
400,400,
NULL,
NULL,
hInstance,
NULL);
if (!hWnd)
{
MessageBox(NULL,
_T("Call to CreateWindow failed!"),
_T("Win32 Guided Tour"),
NULL);
return 0;
}
ShowWindow(hWnd,
nCmdShow);
UpdateWindow(hWnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int) msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HPEN rot = CreatePen(PS_SOLID,2,RGB(255,0,0));
HPEN blau = CreatePen(PS_SOLID,2,RGB(28,134,238));
HPEN green = CreatePen (PS_SOLID,2,RGB(0,255,0));
int x=0,*px;
px = &x;
PAINTSTRUCT PAINTSTRUCT;
HDC hdc;
switch (message)
{
case WM_KEYDOWN:
{
switch (wParam)
{
case VK_ESCAPE:
{
PostQuitMessage (0);
return (0);
}
}
}
case WM_LBUTTONDOWN:
{
PostQuitMessage (0);
return (0);
}
case WM_RBUTTONDOWN:
{
*px+=10;
return 0;
break;
}
case WM_PAINT:
{
PAINTSTRUCT ;PAINTSTRUCT;
HDC hdc;
LOGFONT lf = {0};
HFONT hfText;
GetObject(GetStockObject(DEFAULT_GUI_FONT), sizeof(LOGFONT), &lf);
lf.lfHeight =18;
lf.lfWeight = FW_BOLD;
hfText = CreateFontIndirect(&lf);
hdc = BeginPaint(hWnd,&PAINTSTRUCT);
SelectObject(PAINTSTRUCT.hdc, hfText);
SetBkMode(PAINTSTRUCT.hdc, RGB(255,255,255)); // Hintergrundmodus
SetTextColor(PAINTSTRUCT.hdc, RGB(0,0,255)); // Farbe
TextOut,("Hello World");
DeleteObject(SelectObject(PAINTSTRUCT.hdc, GetStockObject(SYSTEM_FONT)));
SelectObject(hdc,green);
MoveToEx(hdc,0,0,NULL);
SelectObject(hdc,green);
Rectangle(hdc,200,150,100,100);
SelectObject(hdc,blau);
LineTo(hdc,0,0);
SelectObject(hdc,blau);
Ellipse(hdc,0,0,0,0);
EndPaint(hWnd,&PAINTSTRUCT);
return 0;
break;
}
case WM_DESTROY:
PostQuitMessage(0);
return 0;
break;
}
return DefWindowProc(hWnd, message, wParam, lParam);
} |
----------------------------------------------------------------------------
Besten Dank im voraus
lisandi
[Edit by FH]
Hab mal CPP-Tags um den Code hinzugefügt
[/Edit] _________________ Besser die Zeit aktiv nutzen
anstatt aktiv die Zeit zu stutzen
Zuletzt bearbeitet von lisandi6 am 02.03.2012, 12:00, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 02.03.2012, 09:25 Titel: |
|
|
1: Was macht das Komma da? TextOut,("Hello World");
2: Versuch mal genauer zu beschreiben, was du eigentlich tun willst, welche Zeilen das machen wollen, und was nicht klappt. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
lisandi6 Mini JLI'ler
Alter: 62 Anmeldedatum: 16.03.2009 Beiträge: 8 Wohnort: In den Bergen Medaillen: Keine
|
Verfasst am: 02.03.2012, 12:09 Titel: |
|
|
1)
Eigentlich möchte ich ein Fenster
bei dem ich über die Funktion WM_PAINT einen Text
in mein Fenster einfügen kann.
Textgrösse verändern usw.
Bei Rectangle funktioniert es ja
2)
Komischerweise wenn ich das Komma weglasse bekomme ich
beim Projektmappen erstellen folgende Fehlermeldung
error C2660: 'TextOutW': Funktion akzeptiert keine 1 Argumente
Mit Komma wird ohne Fehler erstellt _________________ Besser die Zeit aktiv nutzen
anstatt aktiv die Zeit zu stutzen |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
|
Nach oben |
|
|
lisandi6 Mini JLI'ler
Alter: 62 Anmeldedatum: 16.03.2009 Beiträge: 8 Wohnort: In den Bergen Medaillen: Keine
|
Verfasst am: 04.03.2012, 15:52 Titel: Windows Fenster mit WM_PAINT Funktion |
|
|
So geschafft.
Ich kann jetzt Text und Objekte ins Fenster einfügen.
_____________________________________________[/img] CPP: | #include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>
static TCHAR szWindowClass[] = _T("Hallo Andi");
static TCHAR szTitle[] = _T("Win32 Guided Tour Application");
HINSTANCE hInst;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
if (!RegisterClassEx(&wcex))
{
MessageBox(NULL,
_T("Call to RegisterClassEx failed!"),
_T("Win32 Guided Tour"),
NULL);
return 1;
}
hInst = hInstance;
HWND hWnd = CreateWindow(
szWindowClass,
szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
300, 300,
NULL,
NULL,
hInstance,
NULL
);
if (!hWnd)
{
MessageBox(NULL,
_T("Call to CreateWindow failed!"),
_T("Win32 Guided Tour"),
NULL);
return 1;
}
ShowWindow(hWnd,
nCmdShow);
UpdateWindow(hWnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int) msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HPEN rot = CreatePen(PS_SOLID,2,RGB(255,0,0));
HPEN blau = CreatePen(PS_SOLID,2,RGB(28,134,238));
HPEN green = CreatePen (PS_SOLID,2,RGB(0,255,0));
PAINTSTRUCT ps;
HDC hdc;
TCHAR greeting[] = _T("Hallo Lisandi 6 !!");
switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
SelectObject(hdc,green);
MoveToEx(hdc,0,0,NULL);
SelectObject(hdc,green);
Rectangle(hdc,100,200,200,100);
SelectObject(hdc,blau);
LineTo(hdc,0,0);
SelectObject(hdc,blau);
Ellipse(hdc,0,0,0,0);
TextOut(hdc,
5, 5,
greeting, _tcslen(greeting));
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
break;
}
return 0;
} |
------------------------------------------------------------------------------
Langsam beginn ich das ganze zu durchschauen
MfG Lisandi6 _________________ Besser die Zeit aktiv nutzen
anstatt aktiv die Zeit zu stutzen |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|