LRESULT CALLBACK WndProc( );
BOOL CALLBACK DlgProc( );
int WINAPI() {
....
RegisterClass( &wndclass );
....
while( GetMessage( &msg, NULL, 0, 0 ) ) {
if( child_hwnd == 0 || !IsDialogMessage( child_hwnd, &msg ) ) {
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
}
LRESULT CALLBACK WndProc( ) {
switch( message ) {
case WM_CREATE:
child_hwnd = CreateDialogParam( ( ( LPCREATESTRUCT ) lParam )->hInstance, szTitle, hwnd, DlgProc, 0 );
.......
PopFileInitialize( hwnd );
return 0;
case WM_SETFOCUS:
SetFocus( child_hwnd );
case WM_PAINT: {
hdc = BeginPaint( hwnd, &ps );
GetClientRect( hwnd, &rect );
....
EndPaint( hwnd, &ps );
return 0;
}
case WM_COMMAND:
hmenu = GetMenu( hwnd );
switch( LOWORD( wParam ) ) {
case ID_FILE_NEW:
.....
case ID_FILE_OPEN:
.....
.....
case ID_OPTION_DEVICE:
// öffne fenster mit einstellungen
}
return 0;
case WM_CLOSE:
...........
case WM_QUERYENDSESSION:
....
case WM_DESTROY:
PostQuitMessage( 0 );
return 0;
}
return DefWindowProc( );
}
// dialog...
BOOL CALLBACK DlgProc( ) {
HDC hdc;
PAINTSTRUCT ps;
TEXTMETRIC tm;
switch( message ) {
case WM_CREATE:
....
case WM_SETFOCUS:
SetFocus( GetDlgItem( child_hwnd, IDC_DLGWINDOW_ID )) ;
return 0;
case WM_INITDIALOG:
CheckRadioButton( child_hwnd, IDC_RADIO1, IDC_RADIO3, IDC_RADIO2 );
return 0;
case WM_PAINT: {
hdc = BeginPaint( child_hwnd , &ps );
for( int i = 0; i < 4; i++ )
paint_rectangle( child_hwnd, srechteck[i], i );
show_text( hdc, child_hwnd );
EndPaint( child_hwnd, &ps );
return 0;
}
case WM_COMMAND:
switch( LOWORD( wParam ) ) {
case IDC_BUTTON_START:
// check und auslesen der eingabefelder..
InvalidateRect( child_hwnd, 0, TRUE );
return 0 ;
}
return 0;
case IDC_BUTTON_STOP:
...
return 1;
}
}
return 0;
}