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

Kontrolki nie chcą się wyświetlać WinApi

Ostatnio zmodyfikowano 2015-09-19 14:04
Autor Wiadomość
kondziusob
Temat założony przez niniejszego użytkownika
Kontrolki nie chcą się wyświetlać WinApi
» 2015-09-19 12:04:08
Witam. Jeśli źle umieściłem temat to z góry przepraszam, ale jestem tu nowy.
Mam kłopot, który napotkałem pisząc stosunkowo prosty program, umieszczający okienko z przyciskami po prawej stronie ekranu.
C/C++
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <commctrl.h>

LRESULT CALLBACK WndProc( HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam ) {
    switch( Message ) {
       
       
    case WM_DESTROY: {
            PostQuitMessage( 0 );
            break;
        }
       
       
        default:
        return DefWindowProc( hwnd, Message, wParam, lParam );
    }
    return 0;
}


int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) {
    WNDCLASSEX wc;
    HWND hwnd;
    MSG msg;
   
    memset( & wc, 0, sizeof( wc ) );
    wc.cbSize = sizeof( WNDCLASSEX );
    wc.lpfnWndProc = WndProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor( NULL, IDC_ARROW );
   
   
   
   
   
    wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 );
    wc.lpszClassName = "Klasa";
    wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
    wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
   
    if( !RegisterClassEx( & wc ) ) {
        MessageBox( NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK );
        return 0;
    }
   
    hwnd = CreateWindowEx( WS_EX_TOPMOST | WS_EX_TOOLWINDOW, "Klasa", "Nazwa", WS_VISIBLE | WS_OVERLAPPED,
    GetSystemMetrics( SM_CXSCREEN ) - 110, /* x */
    ( GetSystemMetrics( SM_CYSCREEN ) - 300 ) / 2, /* y */
    110, /* width */
    300, /* height */
    NULL, NULL, hInstance, NULL );
    SetWindowLong( hwnd, GWL_STYLE, WS_THICKFRAME );
   
    CreateWindowEx( 0, WC_BUTTON, "Przycisk", WS_CHILD | WS_VISIBLE, 20, 20, 20, 20, hwnd,( HMENU ) 1, hInstance, 0 ); /* tu teoretycznie powinien tworzyć się button, którego nie ma */
   
    if( hwnd == NULL ) {
        MessageBox( NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK );
        return 0;
    }
   
    while( GetMessage( & msg, NULL, 0, 0 ) > 0 ) {
        TranslateMessage( & msg );
        DispatchMessage( & msg );
    }
    return msg.wParam;
   
   
   
   
}
I niestety, o ile okienko wyświetla się bez błędów, a na logu kompilatora nie wyświetlają się żadne błędy, o tyle przycisk pojawić się już nie chce. Proszę o szybką pomoc i z góry dziękuję.
P-137672
Monika90
» 2015-09-19 13:58:44
To przez to
SetWindowLong( hwnd, GWL_STYLE, WS_THICKFRAME );

Usuń to i będzie dobrze.
P-137674
kondziusob
Temat założony przez niniejszego użytkownika
» 2015-09-19 14:04:36
Dziękuję, pomogło.
P-137675
« 1 »
  Strona 1 z 1