Here's something that was time-consuming to debug, so I thought I'd share the problem (and its solution).
When executing the code below, clicking one of the option buttons crashes the program if using Win95 or 98, but it is fine on Win XP. (The program fails to respond, presumably because it is in an infinite loop.)
The solution is to add the %WS_GROUP style to the LABEL control on the child dialog (hDlg2). This is good practice anyway to get the option buttons to respond correctly to the arrow keys, but its omission shouldn't crash the computer. There is no problem if the superimposed child dialog is removed and all controls placed directly on the main one.
When executing the code below, clicking one of the option buttons crashes the program if using Win95 or 98, but it is fine on Win XP. (The program fails to respond, presumably because it is in an infinite loop.)
Code:
#INCLUDE "Win32API.INC" FUNCTION PBMAIN() LOCAL hDlg,hDlg2 AS DWORD DIALOG NEW 0,"Options Test",,,250,150, %DS_MODALFRAME OR %WS_CAPTION OR %WS_SYSMENU TO hDlg CONTROL ADD OPTION, hDlg, 1001, "AA", 15,15,150,10,%WS_GROUP OR %WS_TABSTOP CONTROL ADD OPTION, hDlg, 1002, "BB", 15,27,150,10 CONTROL ADD OPTION, hDlg, 1003, "CC", 15,39,150,10 DIALOG NEW hDlg,"",0,50,250,50, %DS_CONTROL OR %WS_CHILD TO hDlg2 CONTROL ADD LABEL, hDlg2, -1, "DD", 10,10,150,10 DIALOG SHOW MODELESS hDlg2 DIALOG SHOW MODAL hDlg END FUNCTION