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

kurs winAPI przycik widoczny dopiero po jego kliknieciu

Ostatnio zmodyfikowano 2014-02-21 14:22
Autor Wiadomość
debilek
Temat założony przez niniejszego użytkownika
kurs winAPI przycik widoczny dopiero po jego kliknieciu
» 2014-02-21 10:49:15
Witam!!
Próbuje stworzyć przycisk w winAPI zgodnie z kursem, okno się tworzy, a przycisk jest widoczny dopiero po jego kliknięciu, wcześniej mam tylko białe okno.
Mam zrobione tak

C/C++
HWND okno = CreateWindowEx( 0, NazwaKlasyOkna, "Trolololololololo", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 50, 50, 800, 500, 0, 0, hInstance, 0 );

HWND przycisk_1 = CreateWindowEx( 0, "BUTTON", "EXIT", WS_CHILD | WS_VISIBLE, 100, 100, 100, 50, okno, 0, hInstance, 0 ); // kontrolka

ShowWindow( okno, nShowCmd );
P-105043
DejaVu
» 2014-02-21 11:18:53
Zapewne czyścisz kontekst okna, bo chcesz po tym oknie rysować jak i mieć różne kontrolki. Wywal kod odpowiedzialny za manualne rysowanie sceny i zweryfikuj swój problem.
P-105044
debilek
Temat założony przez niniejszego użytkownika
» 2014-02-21 13:32:01
mam taki kod, i nie wiem które to manualne rysowanie,

C/C++
#include <windows.h>

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

const char NazwaKlasyOkna[] = "Vengeance";

INT WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
    WNDCLASSEX okienko;
   
    okienko.hInstance = hInstance;
    okienko.lpszClassName = NazwaKlasyOkna;
    okienko.lpfnWndProc = WndProc;
    okienko.style = CS_DBLCLKS;
    okienko.cbSize = sizeof( WNDCLASSEX );
    okienko.hIcon = LoadIcon( hInstance, "ikona" );
    okienko.hIconSm = LoadIcon( hInstance, "ikona" );
    okienko.hCursor = LoadCursor( 0, IDC_ARROW );
    okienko.lpszMenuName = 0;
    okienko.hbrBackground =( HBRUSH )( COLOR_WINDOW + 10 );
    okienko.cbWndExtra = 0;
    okienko.cbClsExtra = 0;
   
    if( RegisterClassEx( & okienko ) == 0 )
         return 1;
   
    HWND okno = CreateWindowEx( 0, NazwaKlasyOkna, "Trolololololololo", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 50, 50, 800, 500, 0, 0, hInstance, 0 );
   
    HWND przycisk_1 = CreateWindowEx( 0, "BUTTON", "EXIT", WS_CHILD | WS_VISIBLE, 100, 100, 100, 50, okno, 0, hInstance, 0 );
   
    ShowWindow( okno, nShowCmd );
   
    MSG komunikaty;
   
    while( GetMessage( & komunikaty, 0, 0, 0 ) )
    {
        TranslateMessage( & komunikaty );
        DispatchMessage( & komunikaty );
    }
    return komunikaty.wParam;
}

LRESULT CALLBACK WndProc( HWND hwnd, UINT komunikaty, WPARAM wPar, LPARAM lPar )
{
    switch( komunikaty )
    {
    case WM_PAINT:
        break;
    case WM_CLOSE:
        PostQuitMessage( 0 );
        break;
        default:
        return DefWindowProc( hwnd, komunikaty, wPar, lPar );
    }
    return 0;
}
P-105048
maly
» 2014-02-21 14:22:26
Przechwytujesz komunikat
WM_PAINT
 a nic z nim nie robisz.
P-105055
« 1 »
  Strona 1 z 1