Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » cannot convert from 'void *' to 'struct HBRUSH__ *'

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 <
000
03.03.2006, 14:58 Uhr
~proggaa
Gast


Hi Leute!
Ich habe ein Problem mit meinem Programm:


C++:
#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain   ( HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow )
{
    WNDCLASS WndClass;
    WndClass.style = 0;
    WndClass.cbClsExtra = 0;
    WndClass.cbWndExtra = 0;
    WndClass.lpfnWndProc = 0;
    WndClass.hInstance = hInstance;
    WndClass.hbrBackground = (HBRUSH) (COLOR_WINDOW+1);
    WndClass.hCursor = LoadCursor (NULL, IDC_ARROW);
    WndClass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    WndClass.lpszMenuName = 0;
    WndClass.lpszClassName = "WinProg";

    RegisterClass(&WndClass);

    HWND hWindow;

    hWindow = CreateWindow("WinProg","Fenster",
                          WS_OVERLAPPEDWINDOW,
                          0,0,600,460,NULL,NULL,
                          hInstance, NULL);

    ShowWindow (hWindow, nCmdShow);

    UpdateWindow (hWindow);

    MSG Message;
    while (GetMessage(&Message, NULL, 0,0))
    {
        DispatchMessage(&Message);
    }
    return (Message.wParam);

}

LRESULT CALLBACK WndProc (HWND hWnd, UINT uiMessage,
                          WPARAM wParam, LPARAM lParam)
{
    switch(uiMessage)
    {
       case WM_PAINT:
            HPEN hPen;
            HPEN hPenalt;
            HBRUSH hBrush;
            HBRUSH hBrushalt;
            hBrush = CreateSolidBrush (RGB(255,100,0));
            hPen = CreatePen (PS_SOLID,2,RGB(0,255,255));
            HDC hdc;
            PAINTSTRUCT ps;
            hdc = BeginPaint (hWnd, &ps);
            hBrushalt = SelectObject (hdc, hBrush);
            hPenalt = SelectObject (hdc, hPen);
            MoveToEx (hdc, 20, 20, NULL);
            LineTo (hdc, 100, 100);
            Rectangle (hdc, 120, 20, 240, 140);
            RoundRect (hdc, 260, 20, 420, 140, 20, 20);
            RECT rect;
            SetRect (&rect, 20, 260, 240, 420);
            FrameRect (hdc, &rect, hBrush);
            SetRect (&rect, 260, 260, 420, 420);
            FillRect (hdc, &rect, hBrush);
            Ellipse (hdc, 440, 260, 480, 420);
            SelectObject (hdc, hBrushalt);
            SelectObject (hdc, hPenalt);
            DeleteObject (hPen);
            DeleteObject (hBrush);
            EndPaint (hWnd, &ps);
            return 0;
       case WM_DESTROY:
           PostQuitMessage(0);
           return 0;
       default:
           return DefWindowProc (hWnd, uiMessage,
                                 wParam, lParam);
    }
}



mein compiler (visual c++ 6) spuckt dann immer folgende fehlermeldung raus:

--------------------Configuration: Test - Win32 Debug--------------------
Compiling...
Test.cpp
CProgramme\Microsoft Visual Studio\MyProjects\Test\Test.cpp(59) : error C2440: '=' : cannot convert from 'void *' to 'struct HBRUSH__ *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
CProgramme\Microsoft Visual Studio\MyProjects\Test\Test.cpp(60) : error C2440: '=' : cannot convert from 'void *' to 'struct HPEN__ *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
Error executing cl.exe.

Test.obj - 2 error(s), 0 warning(s)
--------------------------------------------------------------------------

würd mich freuen, wenn ihr mir helfen könntet.

schonmal im vorraus ein digges grosses THX!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.03.2006, 15:02 Uhr
Tommix



Hallo,

C++:
            hdc = BeginPaint (hWnd, &ps);
            hBrushalt = (HBRUSH)SelectObject (hdc, hBrush);
            hPenalt = (HPEN)SelectObject (hdc, hPen);



Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.03.2006, 15:12 Uhr
~proggaa
Gast


Vielen Dank!
Jetzt compilt er es zwar problemlos, aber wenn ich das Programm nun öffne, hängt es sich auf (Test.exe hat ein Problem festgestellt und muss beendet werden......).
Was ist nun falsch am Code?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.03.2006, 15:20 Uhr
~proggaa
Gast


ok, es hat sich erledigt (einfach noch mal neu alles gemacht)
also, nochmals vielen dank!!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.03.2006, 15:21 Uhr
Tommix



Ich hab von WinAPI-Programmierung nicht viel Ahnung, aber CreateWindow liefert NULL zurück, was heißt daß bereits da was schief gelaufen ist.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.03.2006, 15:22 Uhr
Tommix



Was wars denn?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.03.2006, 15:32 Uhr
Spacelord
Hoffnungsloser Fall



C++:
    WndClass.lpfnWndProc = 0;


Das sollte Windows nicht so mögen

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.03.2006, 15:32 Uhr
Tommix



Ach....

C++:
WndClass.lpfnWndProc = WndProc;



Bearbeitung:
Das ich da vor Spacelords Hinweis drauf gekommen bin, glaubt mir jetzt kein Mensch.

Dieser Post wurde am 03.03.2006 um 15:34 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
03.03.2006, 15:34 Uhr
Spacelord
Hoffnungsloser Fall


Doch ich glaub dir das
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
03.03.2006, 19:58 Uhr
~proggaa
Gast


auf jeden fall vielen dank ^^
ich hab schließlich auch erst angefangen, mit windows zu proggen.
ich vermiss schon das cout << "blablabla" << endl; ;-)
wenn ich noch probleme hab, frag ich nur noch euch ^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


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: