MRESULT EXPENTRY ShowHighDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ) { CHAR i; switch( msg ){ case WM_INITDLG: for( i = 0; i < 10; i++){ WinSetDlgItemText( hwnd, ULONG(321 + i) , InfoData.GetHighName(i) ); // item IDR_HIGHNAME1 ... IDR_HIGHNAME10 WinSetDlgItemShort( hwnd, ULONG(331 + i), (USHORT)InfoData.GetHighScore(i), FALSE); // item IDR_HIGHSCORE1 ... IDR_HIGHSCORE10 } break; case WM_COMMAND: switch( SHORT1FROMMP( mp1 ) ){ case DID_OK: WinDismissDlg( hwnd, TRUE ); return (MRESULT)0; case IDR_HIGHCLEAR: WinDismissDlg( hwnd, FALSE ); return (MRESULT)0; } } return WinDefDlgProc( hwnd, msg, mp1, mp2 ); }
MRESULT EXPENTRY HighScoreDlgProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { char PlayerName[21]; switch( msg ){ case WM_INITDLG: WinSetDlgItemShort( hwnd, IDR_SCORENUMBER, (USHORT)Score, FALSE); return (MRESULT)0; case WM_COMMAND: switch( SHORT1FROMMP( mp1 ) ){ case DID_OK: WinQueryDlgItemText( hwnd, ID_NAME, 20, PlayerName ); if( PlayerName[0] == '\0' ) strcpy( PlayerName, "<didn't tell me>" ); InfoData.InsertHigh( PlayerName, Score ); // Score is a global variable WinDismissDlg( hwnd, TRUE ); return (MRESULT)0; default: return WinDefDlgProc( hwnd, msg, mp1, mp2 ); } } return WinDefDlgProc( hwnd, msg, mp1, mp2 ); }
MRESULT EXPENTRY newSizeProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2 ) { switch ( msg ) { case WM_INITDLG: WinSetDlgItemShort(hwndDlg, ID_CURSIZE, FIXEDLEN*.001, TRUE); WinSendDlgItemMsg(hwndDlg, ID_NSIZE, SPBM_SETLIMITS, MPFROMLONG(30), MPFROMLONG(sModSize)); break; case WM_COMMAND : switch( SHORT1FROMMP( mp1 ) ) { case DID_OK: WinSendDlgItemMsg(hwndDlg, ID_NSIZE, SPBM_QUERYVALUE, MPFROMP(&sModSize), MPFROM2SHORT(0,SPBQ_ALWAYSUPDATE)); sModSize *= 1000; WinDismissDlg(hwndDlg, TRUE); break; case DID_CANCEL: WinDismissDlg(hwndDlg, FALSE); break; } break; default : return WinDefDlgProc( hwndDlg, msg, mp1, mp2 ); } return (MRESULT) FALSE; }