PUSHBUTTON "Abbrechen",IDCANCEL,129,24,50,14
END
+IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Optionen"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Karten", -1, 7, 7, 65, 40
+ AUTORADIOBUTTON "&Eine ziehen", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
+ AUTORADIOBUTTON "&Drei ziehen", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
+
+ AUTOCHECKBOX "&Zeit anzeigen", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
+ AUTOCHECKBOX "S&tatusleiste", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+
+ DEFPUSHBUTTON "OK",IDOK,35,97,50,14
+ PUSHBUTTON "Abbrechen",IDCANCEL,101,97,50,14
+END
+
/////
// DESIGNINFO
END
+IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Options"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Cards", -1, 7, 7, 65, 40
+ AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
+ AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
+
+ AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
+ AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+
+ DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
+ PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
+END
+
+
/////
// DESIGNINFO
PUSHBUTTON "Cancelar",IDCANCEL,129,24,50,14
END
+IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Options"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Cards", -1, 7, 7, 65, 40
+ AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
+ AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
+
+ AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
+ AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+
+ DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
+ PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
+END
/////
// DESIGNINFO
PUSHBUTTON "Annuler",IDCANCEL,129,24,50,14
END
+IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Options"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Cards", -1, 7, 7, 65, 40
+ AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
+ AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
+
+ AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
+ AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+
+ DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
+ PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
+END
/////
// DESIGNINFO
PUSHBUTTON "Batal",IDCANCEL,129,24,50,14\r
END\r
\r
+IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Options"\r
+FONT 8, "MS Shell Dlg"\r
+BEGIN\r
+ GROUPBOX "Cards", -1, 7, 7, 65, 40\r
+ AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP\r
+ AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10\r
+\r
+ AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP\r
+ AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP\r
+\r
+ DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14\r
+ PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14\r
+END\r
\r
/////\r
// DESIGNINFO\r
PUSHBUTTON "Annulla",IDCANCEL,129,24,50,14
END
+IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Options"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Cards", -1, 7, 7, 65, 40
+ AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
+ AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
+
+ AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
+ AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+
+ DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
+ PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
+END
/////
// DESIGNINFO
PUSHBUTTON "Avbryt",IDCANCEL,129,24,50,14\r
END\r
\r
+IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Options"\r
+FONT 8, "MS Shell Dlg"\r
+BEGIN\r
+ GROUPBOX "Cards", -1, 7, 7, 65, 40\r
+ AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP\r
+ AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10\r
+\r
+ AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP\r
+ AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP\r
+\r
+ DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14\r
+ PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14\r
+END\r
\r
/////\r
// DESIGNINFO\r
PUSHBUTTON "Anuluj",IDCANCEL,129,24,50,14\r
END\r
\r
+IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Options"\r
+FONT 8, "MS Shell Dlg"\r
+BEGIN\r
+ GROUPBOX "Cards", -1, 7, 7, 65, 40\r
+ AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP\r
+ AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10\r
+\r
+ AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP\r
+ AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP\r
+\r
+ DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14\r
+ PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14\r
+END\r
\r
/////\r
// DESIGNINFO\r
PUSHBUTTON "¡àÅÔ¡", IDCANCEL, 129,24,50,14\r
END\r
\r
+IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Options"\r
+FONT 8, "MS Shell Dlg"\r
+BEGIN\r
+ GROUPBOX "Cards", -1, 7, 7, 65, 40\r
+ AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP\r
+ AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10\r
+\r
+ AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP\r
+ AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP\r
+\r
+ DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14\r
+ PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14\r
+END\r
\r
/////\r
// DESIGNINFO\r
PUSHBUTTON "Ñêàñóâàòè",IDCANCEL,129,24,50,14
END
+IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Options"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Cards", -1, 7, 7, 65, 40
+ AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
+ AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
+
+ AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
+ AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
+
+ DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
+ PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
+END
/////
// DESIGNINFO
PUSHBUTTON "È¡Ïû", IDCANCEL, 129, 24, 50, 14\r
END\r
\r
+IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118\r
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Options"\r
+FONT 8, "MS Shell Dlg"\r
+BEGIN\r
+ GROUPBOX "Cards", -1, 7, 7, 65, 40\r
+ AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP\r
+ AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10\r
+\r
+ AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP\r
+ AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP\r
+\r
+ DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14\r
+ PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14\r
+END\r
\r
/////\r
// DESIGNINFO\r
#define IDD_DIALOG1 101
#define IDR_MENU1 102
#define IDR_ACCELERATOR1 103
-#define IDI_ICON1 104
+
+#define IDI_ICON1 1004
+
#define IDM_GAME_NEW 40001
#define IDM_GAME_DECK 40002
#define IDM_GAME_OPTIONS 40003
#define IDM_HELP_CONTENTS 40005
#define IDM_HELP_ABOUT 40006
+#define IDD_OPTIONS 1200
+#define IDC_OPT_DRAWONE 1201
+#define IDC_OPT_DRAWTHREE 1202
+#define IDC_OPT_SHOWTIME 1203
+#define IDC_OPT_STATUSBAR 1204
+
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
{
TRACE("ENTER DeckClickProc()\n");
CardStack cardstack = stackobj.GetCardStack();
- CardStack pile = pPile->GetCardStack();
+ CardStack pile = pPile->GetCardStack();
fGameStarted = true;
}
else
{
- int numcards = min(3, cardstack.NumCards());
-
+ int numcards = min((nOptions & OPTION_THREE_CARDS) ? 3 : 1, cardstack.NumCards());
+
//make a "visible" copy of these cards
CardStack temp;
temp = cardstack.Pop(numcards);
HINSTANCE hInstance;
TCHAR szAppName[] = _T("Solitaire");
+INT nOptions = 8;
CardWindow SolWnd;
MSG msg;
WNDCLASSEX wndclass;
INITCOMMONCONTROLSEX ice;
- HACCEL hAccelTable;
+ HACCEL hAccelTable;
hInstance = hInst;
return msg.wParam;
}
+VOID LoadSettings(VOID)
+{
+
+}
+
+BOOL CALLBACK OptionsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ case WM_INITDIALOG:
+ CheckRadioButton(hDlg, IDC_OPT_DRAWONE, IDC_OPT_DRAWTHREE,
+ (nOptions & OPTION_THREE_CARDS) ? IDC_OPT_DRAWTHREE : IDC_OPT_DRAWONE);
+
+ return TRUE;
+
+ case WM_COMMAND:
+ switch(LOWORD(wParam))
+ {
+ case IDOK:
+ nOptions &= ~OPTION_THREE_CARDS;
+ if (IsDlgButtonChecked(hDlg, IDC_OPT_DRAWTHREE) == BST_CHECKED)
+ nOptions |= OPTION_THREE_CARDS;
+
+ EndDialog(hDlg, TRUE);
+ return TRUE;
+
+ case IDCANCEL:
+ EndDialog(hDlg, FALSE);
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+VOID ShowGameOptionsDlg(HWND hwnd)
+{
+ INT nOldOptions = nOptions;
+
+ if (DialogBox(hInstance, MAKEINTRESOURCE(IDD_OPTIONS), hwnd, OptionsDlgProc))
+ {
+ if ((nOldOptions & OPTION_THREE_CARDS) != (nOptions & OPTION_THREE_CARDS))
+ NewGame();
+ }
+}
//-----------------------------------------------------------------------------
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
case WM_CREATE:
hwndStatus = CreateStatusWindow(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP, "Ready", hwnd, 0);
-
+
//SendMessage(hwndStatus, SB_SIMPLE, (WPARAM)TRUE, 0);
SendMessage(hwndStatus, SB_SETPARTS, 2, (LPARAM)parts);
//MoveWindow(hwndStatus, 0, nHeight-nStatusHeight, nWidth, nHeight, TRUE);
//parts[0] = nWidth - 256;
//SendMessage(hwndStatus, SB_SETPARTS, 2, (LPARAM)parts);
-
return 0;
case WM_GETMINMAXINFO:
- mmi = (MINMAXINFO *)lParam;
+ mmi = (MINMAXINFO *)lParam;
mmi->ptMinTrackSize.x = 600;
mmi->ptMinTrackSize.y = 400;
-
return 0;
case WM_COMMAND:
return 0;
case IDM_GAME_OPTIONS:
- //ShowGameOptionsDlg(hwnd);
+ ShowGameOptionsDlg(hwnd);
return 0;
case IDM_HELP_CONTENTS:
-
WinHelp(hwnd, szHelpPath, HELP_CONTENTS, 0);//HELP_KEY, (DWORD)"How to play");
-
return 0;
case IDM_HELP_ABOUT:
MessageBox(hwnd, _T("Solitaire by J Brown\r\n\r\nCardLib version 1.0."), szAppName, MB_OK|MB_ICONINFORMATION);
-
return 0;
case IDM_GAME_EXIT:
extern TCHAR szAppName[];
extern bool fGameStarted;
+#define OPTION_THREE_CARDS 8
+
+extern INT nOptions;
+
void CreateSol();
void NewGame(void);