ich probiere gerade mit der WinAPI herum.
Nun bin ich gerade bei den Steuerelementen angekommen.
Konkret habe ich in einer Dialogbox 2 Radiobuttons und einen normalen Button plaziert.
Bei einem Klick auf den Button will ich eben die Radiobuttons auswerten.
Nun ist es aber so, dass scheinbar dann, wenn der Dialog geladen wird, ca. 10Mal die Nachricht, dass der RAdiobutton1 angeklickt worden ist, gesendet wird.
Dadurch erhalte ich natürlich gefälschte Ergebnisse. Wieso wird also ca. 10Mal die Nachricht übermittelt, obwohl ich nie auf den Radiobutton geklickt habe?
MEin System WindowsXP SP1, MASM32 Packet
Ich sollte vielleicht noch sagen, dass ich viel Ahnung von Assembler hab, aber totaler WinAPI Noob.
Der entsprechende Code:
Code: Alles auswählen
AUSWERTUNG_PROC PROC hWnd:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
.IF uMsg==WM_CLOSE
INVOKE EndDialog,hWnd,0
.ELSEIF uMsg==WM_COMMAND
MOV EAX,wParam
MOV EBX,wParam
SHR EBX,16
.IF BX==BN_CLICKED
.IF AX==IDC_RAD02
MOV BYTE1,0
MOV BYTE2,1
.ELSEIF AX==IDC_RAD01
INVOKE MessageBox,hWnd,0,0,MB_OK
MOV BYTE1,1
MOV BYTE2,0
.ELSEIF AX==IDC_BUTT02
.IF BYTE2==1
INVOKE MessageBox,hWnd,ADDR CHOOSE2,ADDR AUSWERTEN,MB_OK or MB_APPLMODAL
.ELSEIF BYTE1==1
INVOKE MessageBox,hWnd,ADDR CHOOSE1,ADDR AUSWERTEN,MB_OK or MB_APPLMODAL
.ELSE
INVOKE MessageBox,hWnd,0,0,MB_OK
.ENDIF
.ENDIF
.ENDIF
.ELSE
MOV EAX,FALSE
RET
.ENDIF
MOV EAX,TRUE
RET
AUSWERTUNG_PROC ENDP