Problem mit der Rückgabe



  • Hab da ein Problem....
    das funzt net ...
    Code:
    long CRadiobut::Get_ID(void) {

    return GetWindowLong(this->hRadiobut,GWL_ID);

    }
    ////in Winmain sihts so aus
    case WM_CTLCOLORSTATIC:
    {
    if(LOWORD(wParam) == radio.Get_ID) {

    SetBkMode ((HDC) wParam, TRANSPARENT);
    return (LONG) hBrush;
    }

    ...aber das schon
    Code:
    case WM_CTLCOLORSTATIC:
    {
    if(LOWORD(wParam) == GetWindowLong(radio.hRadiobut,GWL_ID)) {

    SetBkMode ((HDC) wParam, TRANSPARENT);

    return (LONG) hBrush;
    }
    }

    --------------------Konfiguration: Steuer_Elemente - Win32 Debug--------------------
    Kompilierung läuft...
    CMain.cpp
    C:\Dokumente und Einstellungen\MuSa\Desktop\Steuer_Elemente\CMain.cpp(113) : error C2446: '==' : Keine Konvertierung von 'long (__thiscall CRadiobut::)(void)' in 'int'
    Diese Konvertierung ist eine gueltige Standardkonvertierung, die implizit oder mit dem static_cast-Operator oder mit einer Typumwandlung im C- oder Funktionsformat durchgefuehrt wird
    C:\Dokumente und Einstellungen\MuSa\Desktop\Steuer_Elemente\CMain.cpp(113) : error C2040: '==' : 'int' unterscheidet sich von 'long (__thiscall CRadiobut::
    )(void)' in bezug auf die Anzahl vorgenommener Dereferenzierungen
    CRadiobut.cpp
    Fehler beim Ausführen von cl.exe.
    Browse-Informationsdatei wird erstellt...

    Steuer_Elemente.exe - 2 Fehler, 0 Warnung(en)



  • Und welche ist Zeile 113?



  • Ich nehme mal an, du meinst diese Zeile:
    if(LOWORD(wParam) == GetWindowLong(radio.hRadiobut,GWL_ID))

    Probier's mal so:
    if(LOWORD(wParam) == (long) GetWindowLong(radio.hRadiobut,GWL_ID))

    cya 🙂

    [ Dieser Beitrag wurde am 29.01.2003 um 20:06 Uhr von MagiC Creator editiert. ]



  • Ne das funzt ja
    if(LOWORD(wParam) == GetWindowLong(radio.hRadiobut,GWL_ID)) {

    aber wenn ich das GetWindowLong in der Klasse drin hab

    long CRadiobut::Get_ID(void) {

    return GetWindowLong(this->hRadiobut,GWL_ID);

    }

    Geb ja auch nen long zurück aber das funzt net



  • long CRadiobut::Get_ID(void) {
        return (long) GetWindowLong(this->hRadiobut,GWL_ID);
    }
    

    😕



  • Du hättest halt vorher sagen müssen, wo der Fehler ist...

    cya 🙂



  • Das funz auch net 😞 i was net woas do net hinhaut bähhhhhhhhhhhhh



  • Gib mal bitte den ganzen Quellcode und dein Problem ist ruck zuck gelöst.



  • #ifndef _CRADIOBUT_H_
    
    #define _CRADIOBUT_H_
    
    /*** INCLUDES ******************************************************************/
    
    #include "Global.h"
    
    /*** CLASS *********************************************************************/
    
    class CRadiobut{
    
    public:
    
       CRadiobut(int ID, HWND hwnd, char* btncap, int xpos, int ypos, int xsize, int ysize);
    
       ~CRadiobut() {};
    
       long Get_ID(void); 
    
       void Enable(bool enable);
    
       void Visible(bool visible);
    
       HWND hRadiobut;
    
    };
    
    #endif
    
    ////////////////////////////////////////////////////////////////////////
    #include "CRadiobut.h"
    
    CRadiobut::CRadiobut(int ID, HWND hwnd, char* btncap, int xpos, int ypos, int xsize, int ysize) {
    
       this->hRadiobut  = CreateWindowEx( NULL,
                                 "button",
                                 btncap,
                                 WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON,
                                  xpos, ypos,
                                 xsize, ysize,
                                 hwnd,
                                 (HMENU)ID,
                                 (HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),
                                 NULL);
    
    }
    
    long CRadiobut::Get_ID(void) {
    
       return GetWindowLong(hRadiobut,GWL_ID);
    
    }
    
    void CRadiobut::Enable(bool enable) {
    
       EnableWindow(this->hRadiobut,enable);
    
    }
    
    void CRadiobut::Visible(bool visible) {
    
       ShowWindow(this->hRadiobut, visible);
    
    }
    
    //////////////////////////////WINMAIN///////////////////////////////
       case WM_CTLCOLORSTATIC:
          {
    
             if(LOWORD(wParam) == radio.Get_ID) {//FEHLER ZEILE
    
             SetBkMode ((HDC) wParam, TRANSPARENT);
    
             return (LONG) hBrush;
    
             }
    
          }break;
    

    Ich versteh den fehler net 😞

    edit: Bitte Codetags benutzen.

    [ Dieser Beitrag wurde am 31.01.2003 um 13:01 Uhr von cd9000 editiert. ]



  • Ich meinte natürlich das ganze Programm, damit ich das auch kompilieren kann. Na ja, scheint wohl ein bisschen groß zu sein. Versuch mal alles unnütze rauszunehmen und am besten in eine Datei zu machen.


Anmelden zum Antworten