002
01.11.2008, 02:26 Uhr
~be
Gast
|
C++: |
#include <windows.h> #include <string.h> #include "resource.h"
LPCSTR MainClassName = "Dialogfelder";
HINSTANCE hInst;
//Für Auswertung von Check- und Radiobuttons BOOL bChecked1 = FALSE; BOOL bChecked2 = FALSE; BOOL bRadio1 = FALSE; BOOL bRadio2 = FALSE; BOOL bRadio3 = FALSE;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { WNDCLASSEX wc; MSG wmsg; HWND hWnd;
wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(ID_ICON)); wc.hCursor = LoadCursor(NULL, IDC_CROSS); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU); wc.lpszClassName = MainClassName; wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ID_ICON), IMAGE_ICON, 16, 16, 0);
if(!RegisterClassEx(&wc)) { MessageBox(NULL, "Windows Registrations Fehler", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; }
hWnd = CreateWindowEx(WS_EX_CLIENTEDGE, MainClassName, "Menü Beispiel", WS_OVERLAPPEDWINDOW|WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,NULL,NULL,hInstance, NULL);
hInst=hInstance;
if(hWnd == NULL) { if(MessageBox(NULL, "Fehler beim Erstellen des Fensters!", "Error!", MB_ICONEXCLAMATION | MB_OK) == IDOK); return 0; }
while(GetMessage(&wmsg,NULL,0,0)) { TranslateMessage(&wmsg); DispatchMessage(&wmsg); } return wmsg.wParam; }
LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { switch( uMsg ) { case WM_COMMAND : switch( LOWORD( wParam ) ) { //Wurde Menüelement "Radio & Checkbox" gewählt case ID_MENU_RADIO_CHECK : DialogBox( hInst, MAKEINTRESOURCE(IDR_FIND_PRIM), hWnd, (DLGPROC)CheckRadioProc ); break; //Menüelement "Editfeld" wurde ausgewählt case ID_EDITFELD: DialogBox( hInst, MAKEINTRESOURCE(IDR_IS_IT_PRIM), hWnd, (DLGPROC)CheckEditProc ); break; //Menüelement "Listbox" wurde ausgewählt
//Menüelement "?" wurde ausgewählt case ID_HELP: MessageBox(hWnd,"Hier können Sie einige " "Dialogfelder testen", "Hinweis", MB_OK); break; //Menüelement "Beenden" wurde betätigt case ID_EXIT : DestroyWindow( hWnd ); break; } break;
case WM_DESTROY : PostQuitMessage(0); break;
default : return( DefWindowProc( hWnd, uMsg, wParam, lParam )); }
return( 0L ); }
// Nachrichtenverarbeitung für das Dialogfeld // "Primzahlen finden" LRESULT CALLBACK CheckRadioProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) { char ich[255]; BOOL primzahl; BOOL btran2; char hi[255]; int Search_To = 0; int halbPrim; switch( uMsg ) { case WM_INITDIALOG : SetDlgItemInt ( hDlg, IDC_LIST, 12345, TRUE);
break;
//Check- und Radiobutton auswerten case WM_COMMAND : switch( LOWORD( wParam ) ) { case IDC_FERTIG : //Fertig
GetDlgItemText(hDlg, IDC_NUMBER, ich, 255); Search_To = atoi (ich); halbPrim = Search_To /2 + 1 ; primzahl = true; for (int ierstes = 1 ; ierstes <= Search_To ; ierstes++) { primzahl = true;
for( int i=2 ;i <= ierstes / 2 +1; i++) { if (ierstes % i == 0) { primzahl = false; } } if (primzahl == true ) { //hier die umwandlung des types von ierstes in ich SendDlgItemMessage(hDlg, IDC_LISTBOX, LB_ADDSTRING, 0, (LPARAM)ich); } }
break;
case IDCANCEL :
EndDialog( hDlg, IDCANCEL ); break;
} default : return( FALSE ); } return( TRUE ); }
|
Das ist bisher der quellencode (der teil der uns interresiert) die resource und header sind richtig und alle komponenten funktionieren
mein problem ist wie gesagt immernoch dass wenn ich mit itoa eine int varriable in den string laden würde würde diese nicht als zahl sondern als zeichen (ANSII)ausgegeben die hier verwendete listbox kann nur chararrays oder chars ausgeben bitte helft mir |