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

Błąd z oknem dialogowym.

Ostatnio zmodyfikowano 2017-08-24 19:02
Autor Wiadomość
kaczor112
Temat założony przez niniejszego użytkownika
Błąd z oknem dialogowym.
» 2017-08-23 21:21:15
Dzień dobry, mam problem z oknem dialogowym próbuję je stworzyć za pomocą zasobów Visual Studio 2015. Jednak po wywołaniu okna dialogowego wytawia się ono jakby na tło aplikacji i nic się nie da z tym zrobić...


https://ibb.co/jGQKcF

Nie mam pojęcia jak to się dzieje. Proszę o pomoc!

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



LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
BOOL CALLBACK DlgProc( HWND, UINT, WPARAM, LPARAM );
HWND hwnd2;

int WINAPI WinMain( HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument,
int nFunsterStil )
{
   
   
    WNDCLASSEX window;
    HWND hwnd = NULL;
    MSG msg;
    TCHAR Class_Name[] = TEXT( "OKNO_TEST" );
    TCHAR Title[] = TEXT( "Tytul" );
   
    window.cbClsExtra = NULL;
    window.cbSize = sizeof( WNDCLASSEX );
    window.cbWndExtra = NULL;
    window.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 );
    window.hCursor = LoadCursor( NULL, IDC_ARROW );
    window.hIcon = LoadIcon( NULL, IDI_APPLICATION );
    window.hIconSm = NULL;
    window.hInstance = hThisInstance;
    window.lpfnWndProc = WndProc;
    window.lpszClassName = Class_Name;
    window.lpszMenuName = 0;
    window.style = CS_VREDRAW | CS_HREDRAW;
   
    RegisterClassEx( & window );
   
    hwnd =(( CreateWindowEx( WS_EX_WINDOWEDGE, Class_Name, Title,
    WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT,
    800, 600, NULL, NULL, hThisInstance, NULL ) ) );
    //
    // Tworzenie okna - saaaam to sobie zrób ;-)
    //
   
    hwnd2 =(( CreateWindowEx( WS_EX_WINDOWEDGE, NULL, NULL,
    WS_VISIBLE | WS_CHILD, CW_USEDEFAULT, CW_USEDEFAULT,
    800, 600, NULL, NULL, NULL, NULL ) ) );
    // Tworzymy jakiś przycisk do wywołania dialogu
   
    HWND hPrzyc = CreateWindowEx( 0, TEXT( "BUTTON" ), TEXT( "Dialog" ), WS_CHILD | WS_VISIBLE,
    5, 5, 50, 25, hwnd, NULL, hThisInstance, NULL );
   
    // Pokazujemy główne okno
    ShowWindow( hwnd, nFunsterStil );
    UpdateWindow( hwnd );
   
    // No i standardowo - pętelka
    while( GetMessage( & msg, NULL, 0, 0 ) )
    {
       
        if( !IsDialogMessage( hwnd2, & msg ) )
        {
            TranslateMessage( & msg );
            DispatchMessage( & msg );
        }
    }
   
    return msg.wParam;
}

// Procedura okna
LRESULT CALLBACK WndProc( HWND hwnd, UINT mesg, WPARAM wParam, LPARAM lParam )
{
    HWND hwn2d;
    switch( mesg )
    {
    case WM_LBUTTONDOWN:
       
        /*hwn2d = CreateWindowEx(WS_EX_WINDOWEDGE, L"Joapa", L"Jolo",
        WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT,
        800, 600, hwnd, NULL, GetModuleHandle(NULL), NULL);
        ShowWindow(hwn2d, SW_SHOW);*/
       
        break;
    case WM_COMMAND:
       
        {
           
            //ShowWindow(hwnd2, SW_SHOW);
           
            // Tutaj wywołujemy nasz dialog
            int ret = DialogBox( GetModuleHandle( NULL ), MAKEINTRESOURCE( IDD_PROPPAGE_SMALL ), hwnd, DlgProc );
            if( ret == IDOK )
                 MessageBox( hwnd, L"Wybrałeś \'Fajnie\' w oknie dialogowym!", L"Test", MB_ICONINFORMATION );
            else if( ret == IDCANCEL )
                 MessageBox( hwnd, L"Wybrałeś \'Anuluj\' w oknie dialogowym!", L"Test", MB_ICONINFORMATION );
           
        }
        break;
       
    case WM_DESTROY:
        PostQuitMessage( 0 );
        break;
       
        default:
        return DefWindowProc( hwnd, mesg, wParam, lParam );
    }
   
    return 0;
}

// Procedura dialogowa
BOOL CALLBACK DlgProc( HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam )
{
    switch( Msg )
    {
    case WM_COMMAND:
        {
           
            // reakcja na przyciski
            switch( LOWORD( wParam ) )
            {
            case IDC_BUTTON1: MessageBox( hwnd, L"Wybrałeś \'Fajnie\' w oknie dialogowym!", L"Test", MB_ICONINFORMATION );
            case IDOK: EndDialog( hwnd, IDOK ); break;
            case IDCANCEL: EndDialog( hwnd, IDCANCEL ); break;
            }
        }
        break;
       
        default: return FALSE;
    }
   
    return TRUE;
}
P-164247
Monika90
» 2017-08-24 11:19:49
Definicję okna dialogowego w pliku zasobów też mógłbyś pokazać.
P-164256
kaczor112
Temat założony przez niniejszego użytkownika
» 2017-08-24 18:10:51
Przepraszam już wrzucam:


C/C++
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// Polish (Poland) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_PLK)
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE
BEGIN
"resource.h\0"
END

2 TEXTINCLUDE
BEGIN
"#include " "winres.h" "\r\n"
"\0"
END

3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END

#endif    // APSTUDIO_INVOKED

#endif    // Polish (Poland) resources
/////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////
// English (United States) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_DIALOGBAR DIALOGEX 0, 0, 330, 96
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
LTEXT "TODO: layout dialog bar", IDC_STATIC, 126, 4, 77, 8
END

IDD_PROPPAGE_MEDIUM DIALOGEX 0, 0, 210, 154
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Property Page"
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
LTEXT "TODO: layout property page", IDC_STATIC, 60, 73, 90, 8
PUSHBUTTON "Button1", IDC_BUTTON1, 59, 115, 50, 14
END

IDD_FORMVIEW DIALOGEX 0, 0, 185, 92
STYLE DS_ABSALIGN | DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_VSCROLL | WS_HSCROLL
EXSTYLE WS_EX_OVERLAPPEDWINDOW | WS_EX_ACCEPTFILES | WS_EX_TRANSPARENT | WS_EX_APPWINDOW | WS_EX_NOACTIVATE
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
LTEXT "TODO: layout formview", IDC_STATIC, 55, 42, 74, 8
END

IDD_OLE_PROPPAGE_SMALL DIALOGEX 0, 0, 250, 62
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
LTEXT "TODO: layout OLE property page", IDC_STATIC, 72, 27, 106, 8
END

IDD_OLE_PROPPAGE_LARGE DIALOGEX 0, 0, 250, 110
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
LTEXT "TODO: layout OLE  property page", IDC_STATIC, 71, 51, 108, 8
END

IDD_PROPPAGE_LARGE DIALOGEX 0, 0, 235, 156
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Property Page"
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
LTEXT "TODO: layout property page", IDC_STATIC, 73, 74, 90, 8
END

IDD_PROPPAGE_SMALL DIALOGEX 0, 0, 663, 269
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
EXSTYLE WS_EX_NOACTIVATE
CAPTION "Property Page"
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
LTEXT "TODO: layout property page", IDC_STATIC, 53, 59, 90, 8
PUSHBUTTON "Button1", IDC_BUTTON1, 240, 98, 50, 14
GROUPBOX "Static", IDC_STATIC, 70, 7, 48, 40
CONTROL "", IDC_TREE1, "SysTreeView32", WS_BORDER | WS_HSCROLL | WS_TABSTOP, 7, 157, 649, 63
END


/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_DIALOGBAR, DIALOG
BEGIN
LEFTMARGIN, 6
RIGHTMARGIN, 323
TOPMARGIN, 7
BOTTOMMARGIN, 89
END

IDD_PROPPAGE_MEDIUM, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 203
TOPMARGIN, 7
BOTTOMMARGIN, 147
END

IDD_FORMVIEW, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 167
TOPMARGIN, 7
BOTTOMMARGIN, 75
END

IDD_OLE_PROPPAGE_SMALL, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 243
TOPMARGIN, 7
BOTTOMMARGIN, 55
END

IDD_OLE_PROPPAGE_LARGE, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 243
TOPMARGIN, 7
BOTTOMMARGIN, 103
END

IDD_PROPPAGE_LARGE, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 228
TOPMARGIN, 7
BOTTOMMARGIN, 149
END

IDD_PROPPAGE_SMALL, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 656
TOPMARGIN, 7
BOTTOMMARGIN, 262
END
END
#endif    // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// AFX_DIALOG_LAYOUT
//

IDD_DIALOGBAR AFX_DIALOG_LAYOUT
BEGIN
0
END

IDD_FORMVIEW AFX_DIALOG_LAYOUT
BEGIN
0
END

IDD_PROPPAGE_MEDIUM AFX_DIALOG_LAYOUT
BEGIN
0
END

IDD_PROPPAGE_SMALL AFX_DIALOG_LAYOUT
BEGIN
0
END

#endif    // English (United States) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED
P-164267
Luq
» 2017-08-24 19:02:54
https://msdn.microsoft.com​/en-us/library/windows/desktop​/ms644994(v=vs.85).aspx#modal_boxes
An application must not create a modal dialog box having the WS_CHILD style. A modal dialog box with this style disables itself, preventing any subsequent input from reaching the application.
P-164271
« 1 »
  Strona 1 z 1