Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinAPI, C++] HFONT a void *

Ostatnio zmodyfikowano 2015-10-10 23:37
Autor Wiadomość
Cansisti
Temat założony przez niniejszego użytkownika
[WinAPI, C++] HFONT a void *
» 2015-10-10 23:21:07
Cześć
Chcę napisać funkcję która będzie tworzyć czcionkę w Winapi i zapisywać ją pod podanym adresem. Chcę też żeby funkcja przyjmowała adres zmiennej HFONT jako void*, ponieważ ma też obsługiwać inne typy.
Najlepiej pokazać na kodzie:
C/C++
int getI( GetIType v, void * a ) { //GetIType to enum
   
    switch( v ) {
        //inne case'y
    case Font: {
            HFONT hFont =( HFONT ) GetStockObject( DEFAULT_GUI_FONT );
            LOGFONT theFont;
            GetObject( hFont, sizeof( LOGFONT ), & theFont );
            theFont.lfHeight = - 15;
            theFont.lfWeight = 300;
            HFONT hFont2 = CreateFontIndirect( & theFont );
            a = hFont2;
            return 0;
        }
    }
    return - 1;
}

Użycie funkcji w taki sposób:
C/C++
HFONT hFont = NULL;
WinEz::getI( Font, hFont );
SendMessage( hwndt, WM_SETFONT,( WPARAM ) hFont, true );
Nie działa (hFont jest nadal równe NULL)

P.S. Apropos, czym dokładnie jest HFONT, bo z tego co widzę chyba wskaźnikiem (na co?)

Problem rozwiązany, musiałem doczytać jak używać wskaźnika void :)
C/C++
*( HFONT * ) a = hFont2;
P-138380
pekfos
» 2015-10-10 23:37:28
Nie działa (hFont jest nadal równe NULL)
Bo nie zmieniasz hFont.
P-138382
« 1 »
  Strona 1 z 1