przepraszam, myślałem że to wystarczy.
#include <windows.h>
#include "dialog.h"
#define IDD_MOJDIALOG 202
#define IDC_LABEL 201
LPSTR NazwaKlasy = "Klasa Okienka";
MSG Komunikat;
HWND przycisk, pole;
#define id_przycisk 501
#define id_pole 502
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
BOOL CALLBACK DlgProc( HWND, UINT, WPARAM, LPARAM );
int WINAPI WinMain( HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument,
int nFunsterStil )
{
HFONT hNormalFont =( HFONT ) GetStockObject( DEFAULT_GUI_FONT );
HWND hwnd;
WNDCLASSEX wc;
wc.cbSize = sizeof( WNDCLASSEX );
wc.style = CS_DBLCLKS;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hThisInstance;
wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 );
wc.lpszMenuName = NULL;
wc.lpszClassName = NazwaKlasy;
wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
if( !RegisterClassEx( & wc ) )
{
MessageBox( NULL, "Wysoka Komisja odmawia rejestracji tego okna!", "Niestety...", MB_ICONEXCLAMATION | MB_OK );
return 1;
}
hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, NazwaKlasy, "PROGRAMIK", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 350, 400, NULL, NULL, hThisInstance, NULL );
pole = CreateWindowEx( WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE, 10, 10, 200, 30, hwnd, NULL, hThisInstance, NULL );
przycisk = CreateWindowEx( WS_EX_CLIENTEDGE, "BUTTON", "PRZYCISK", WS_CHILD | WS_VISIBLE, 10, 50, 150, 30, hwnd,( HMENU ) id_przycisk, hThisInstance, NULL );
HWND hPrzyc = CreateWindowEx( 0, "BUTTON", "Dialog", WS_CHILD | WS_VISIBLE,
5, 5, 50, 25, hwnd, NULL, hThisInstance, NULL );
if( hwnd == NULL )
{
MessageBox( NULL, "Okno odmówiło przyjścia na świat!", "Ale kicha...", MB_ICONEXCLAMATION );
return 1;
}
ShowWindow( hwnd, nFunsterStil );
UpdateWindow( hwnd );
while( GetMessage( & Komunikat, NULL, 0, 0 ) )
{
TranslateMessage( & Komunikat );
DispatchMessage( & Komunikat );
}
return Komunikat.wParam;
}
LRESULT CALLBACK WndProc( HWND hwnd, UINT mesg, WPARAM wParam, LPARAM lParam )
{
switch( mesg )
{
case WM_COMMAND:
{
int ret = DialogBox( GetModuleHandle( NULL ), MAKEINTRESOURCE( 200 ), hwnd, DlgProc );
if( ret == IDOK )
MessageBox( hwnd, "Wybrałeś \'Fajnie\' w oknie dialogowym!", "Test", MB_ICONINFORMATION );
else if( ret == IDCANCEL )
MessageBox( hwnd, "Wybrałeś \'Anuluj\' w oknie dialogowym!", "Test", MB_ICONINFORMATION );
}
break;
case WM_DESTROY:
PostQuitMessage( 0 );
break;
default:
return DefWindowProc( hwnd, mesg, wParam, lParam );
}
return 0;
}
BOOL CALLBACK DlgProc( HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam )
{
switch( Msg )
{
case WM_COMMAND:
{
switch( LOWORD( wParam ) )
{
case IDOK: EndDialog( hwnd, IDOK ); break;
case IDCANCEL: EndDialog( hwnd, IDCANCEL ); break;
}
}
break;
default: return FALSE;
}
return TRUE;
}