1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
| #include "winproc.h"
#include "Prsht.h"
HINSTANCE hInst;
HWND hWnd;
HWND hDial;
BOOL CALLBACK Dial1DlgProc (HWND, UINT, UINT, LONG);
BOOL CALLBACK Dial2DlgProc (HWND, UINT, UINT, LONG);
void DoPropertySheet(HWND);
char szAppName[]="Modification des Proprietes";
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
//#define lpnmHDR ((NMHDR *)lParam)
HDC hdc ;
PAINTSTRUCT ps ;
switch (message) {
case WM_CREATE :
return 0;
case WM_PAINT :
hdc = BeginPaint (hwnd, &ps) ;
TextOut (hdc, 340, 80, "Test - 2006", 11);
EndPaint (hwnd, &ps) ;
return 0;
case WM_COMMAND:
switch (wParam)
{
case IDD_DL1:
DoPropertySheet(hwnd);
return 0 ;
}
return 0 ;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
////////////////////////////////////////////////////////////////////////////////////////
BOOL CALLBACK Dial1DlgProc (HWND hDlg, UINT message, UINT wParam, LONG lParam)
{
NMHDR *lpnmHDR;
switch (message) {
case WM_INITDIALOG:
return TRUE;
case WM_NOTIFY:
lpnmHDR = (NMHDR *)lParam;
switch (lpnmHDR->code) {
case PSN_SETACTIVE:
SetWindowLong (lpnmHDR->hwndFrom, DWL_MSGRESULT, TRUE);
// MessageBox(NULL, "PSN_SETACTIVE", "Dial1DlgProc", MB_OK|MB_ICONINFORMATION);
break;
case PSN_KILLACTIVE:
SetWindowLong (lpnmHDR->hwndFrom, DWL_MSGRESULT, TRUE);
// MessageBox(NULL, "PSN_KILLACTIVE", "Dial1DlgProc", MB_OK|MB_ICONINFORMATION);
break;
case PSN_APPLY:
// MessageBox(NULL, "PSN_APPLY", "Dial1DlgProc", MB_OK|MB_ICONINFORMATION);
break;
case PSN_RESET:
// MessageBox(NULL, "PSN_RESET", "Dial1DlgProc", MB_OK|MB_ICONINFORMATION);
break;
case PSN_HELP:
// MessageBox(NULL, "PSN_HELP", "Dial1DlgProc", MB_OK|MB_ICONINFORMATION);
break;
}
return TRUE;
case WM_COMMAND:
if (HIWORD (wParam) == EN_CHANGE) {
SendMessage (GetParent(hDlg), PSM_CHANGED, (WPARAM)hDlg, 0);
break;
}
switch (wParam)
{
case IDOK1:
MessageBox(NULL, "IDOK1", "Dial1DlgProc", MB_OK|MB_ICONINFORMATION);
return 0 ;
}
}
return 0;
}
////////////////////////////////////////////////////////////////////////////////////////
BOOL CALLBACK Dial2DlgProc (HWND hDlg, UINT message, UINT wParam, LONG lParam)
{
NMHDR *lpnmHDR;
switch (message) {
case WM_INITDIALOG:
return TRUE;
case WM_NOTIFY:
lpnmHDR = (NMHDR *)lParam;
switch (lpnmHDR->code) {
case PSN_SETACTIVE:
SetWindowLong (lpnmHDR->hwndFrom, DWL_MSGRESULT, TRUE);
// MessageBox(NULL, "PSN_SETACTIVE", "Dial2DlgProc", MB_OK|MB_ICONINFORMATION);
break;
case PSN_KILLACTIVE:
SetWindowLong (lpnmHDR->hwndFrom, DWL_MSGRESULT, TRUE);
// MessageBox(NULL, "PSN_KILLACTIVE", "Dial2DlgProc", MB_OK|MB_ICONINFORMATION);
break;
case PSN_APPLY:
// MessageBox(NULL, "PSN_APPLY", "Dial2DlgProc", MB_OK|MB_ICONINFORMATION);
break;
case PSN_RESET:
// MessageBox(NULL, "PSN_RESET", "Dial1DlgProc", MB_OK|MB_ICONINFORMATION);
break;
case PSN_HELP:
// MessageBox(NULL, "PSN_HELP", "Dial2DlgProc", MB_OK|MB_ICONINFORMATION);
break;
}
return TRUE;
case WM_COMMAND:
if (HIWORD (wParam) == EN_CHANGE) {
SendMessage (GetParent(hDlg), PSM_CHANGED, (WPARAM)hDlg, 0);
break;
}
}
return 0;
}
void DoPropertySheet(HWND hwndOwner)
{
PROPSHEETPAGE psp[2];
PROPSHEETHEADER psh;
psp[0].dwSize = sizeof(PROPSHEETPAGE);
psp[0].dwFlags = PSP_USETITLE;
psp[0].hInstance = hInst;
psp[0].pszTemplate = MAKEINTRESOURCE(IDD_DIALOG1);
psp[0].pszIcon = NULL;
psp[0].pfnDlgProc = Dial1DlgProc;
psp[0].pszTitle = "Page 1";
psp[0].lParam = 0;
psp[0].pfnCallback = NULL;
psp[1].dwSize = sizeof(PROPSHEETPAGE);
psp[1].dwFlags = PSP_USETITLE;
psp[1].hInstance = hInst;
psp[1].pszTemplate = MAKEINTRESOURCE(IDD_DIALOG2);
psp[1].pszIcon = NULL;
psp[1].pfnDlgProc = Dial2DlgProc;
psp[1].pszTitle = "Page 2";
psp[1].lParam = 0;
psp[1].pfnCallback = NULL;
psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_PROPSHEETPAGE;
psh.hwndParent = hwndOwner;
psh.hInstance = hInst;
psh.pszIcon = NULL;
psh.pszCaption = (LPSTR) "Titre de la boite de dialogue";
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
psh.nStartPage = 0;
psh.ppsp = (LPCPROPSHEETPAGE) &psp;
psh.pfnCallback = NULL;
PropertySheet(&psh);
return;
} |
Partager