Ja MFC kann am Anfang etwas undurchschaubar sein, aber wenn man sich mal dran gewöhnt hat, ist es ganz easy.
1. Radio Button:
Ich frage mich wieso du das mit einem Radio Button machen willst. Ein Radio Button ist
immer ausgewählt. Radio Buttons werden verwendet um eine Auswahl zwischen mehreren Optionen zu machen wo es nur
1 Auswahlmöglichkeit gibt. Sprich [o] Ja oder [ ] Nein.
Wenn der Radio Button einmal gewählt ist, kannst du ihn nicht mehr weg machen, sondern höhstens einen anderen Wählen.
Wenn du etwas ein / ausschalten willst, solltest du lieber Check Boxen nehmen.
Naja aber ok.
Du gehst in die Klassenansicht und Klickst auf C
DeinProjektNameDlg, unten siehst du dann die Funktionen. Du machst einen Doppelklick auf OnInitDialog();
Dann scrollst du bist an's Ende der Funktion, dort steht irgendwo:
PHP Code:
// TODO: Hier zusätzliche Initialisierung einfügen
Datrunter fügst du dann folgendes ein:
PHP Code:
CButton *z_Radio1=(CButton *)GetDlgItem(IDC_RADIO1);
z_Radio1->SetCheck(1);
IDC_RADIO1 ist die ID von deinem Radio Button. Das wars schon.
2. Du kannst in die Ressource ansicht gehen und dort einen Rechtsklick auf den Radio Button machen, und dann Ereignishandler hinzufügen. BN_Clicked.
Dann wirst du autoamtisch in die Funktion reinspringen. Dort kansnt du nun z.B. was reinschreiben, was gemacht werden soll, wenn der Radio Button angeklickt wird.
Ich würde dir aber empfehlen, vorher eine Funktion anzulegen und dort nur die Funktion aufzurufen.
Aber wie gesagt, ich würde dir eine Check Box empfehlen.
Da kannst du das auch über Controls machen und z.B. so abfragen:
PHP Code:
if (m_CheckBox.GetCheck() == BST_CHECKED){
m_func1();
} else if ( m_CheckBox.GetCheck() == BST_UNCHECKED ) {
m_func2();
}
3. GUI
Also ich weiß nicht genau ob das so möglich ist wie du das machen willst. Wird auf jedenfall sehr schwer.
Soweit ich das verstanden habe willst du, dass falls das Spielefenster von Shayia nicht gefunden wurde, nur eine MessageBox kommt, und die ganze restliche GUI erst geladen wird, wenn Shaiya offen ist.
Ist imo nur sehr schwer zu realisieren. Weil da müsstest du auch im OnInitDialog() rumfuchteln, und das kann problematisch werden. Bei MFC wird das meiste vorgeneriert, und wenn du solche Abläufe ändern willst die schon vorgeneriert sind, kannst du dies nur mit sehr viel Programmieraufwand. Da du kein MFC pro bist, würde ich dir auch davon abraten.
Besser wäre es, wenn du zuerst die GUI laden lassen würdest, und dann je nach Funktion die dein Programm erfüllen soll, dir eine memberfunktion erstellst die nochmal den Handle checkt. Sprich ob das Fenster gefunden wurde.
Die Funktion kannst du dann einfach immer aufrufen bevor du eine andere Funktion aufrufst. So ist sichergestellt, das z.B. MemoryWrites nicht in's leere verlaufen.
btw.
PHP Code:
while(1)
{
MemoryProcessWrite(...)
}
Damit wirst du Probleme bekommen. Was du dort machst du schreibst einen Wert
ununterbrochen in den Speicher. In einer Endlosschleife. Dadurch, dürfte dein Programm freezen.