000
29.04.2011, 15:09 Uhr
~DerBesteDerSchlechtesten
Gast
|
Hallo,
Ich schreibe gerade ein WinAPI-Programm und an einer Stelle möchte ich die Bestätigung des Anwenders für weitere Schritte haben. Das könnte ich problemlos mit der Funktion MessageBox mit dem Parameter MB_YESNO machen, aber ich möchte zusätzlich die Option geben, dass die Bestätigung nicht nochmal angezeigt wird, und dazu gibt es keinen default style für die Messageboxes. Also habe ich mir das Fenster selber erstellt (mit Ressourcen). Alles funktioniert einwandfrei, aber ich möchte nur wissen, ob das so geht und es keine Schwachstellen besitzt
C++: |
Ich erstelle das modelss window mit: int iEditProfResult = DialogBox(hInst, MAKEINTRESOURCE(IDR_CONFIRMSYNC), hDlgMain, (DLGPROC)ConfirmSync);
|
Die Funktion an sich macht nicht viel - gibt nur einen Rückgabewert zurück (je nach dem, auf was geklickt wurde):
C++: |
LRESULT CALLBACK ConfirmSync(HWND hWndDlgConf, UINT Msg, WPARAM wParam, LPARAM lParam) { switch(Msg) { case WM_COMMAND: { switch (LOWORD(wParam)) { case ID_PROCEED: { EndDialog(hWndDlgConf, 11); return TRUE; } break;
case IDCANCEL: { EndDialog(hWndDlgConf, 0); return FALSE; } break; }
} break; } return FALSE; }
|
Die Ressourcen, falls es wichtig ist:
C++: |
IDR_CONFIRMSYNC DIALOGEX 150, -10, 175, 90 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_MINIMIZEBOX CAPTION "Large data found" FONT 8, "MS Sans Serif" BEGIN LTEXT "bla bla bla. Still proceed?", IDC_STATIC, 10, 10, 160, 35 CHECKBOX "Dont show this message again", IDC_CB_NOTREMIND, 20, 50, 115, 10, BS_AUTOCHECKBOX
PUSHBUTTON "Yes", ID_PROCEED, 30, 70, 50, 14 PUSHBUTTON "No", IDCANCEL, 100, 70, 50, 14 END
|
Danke! |