Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi,

hab mal wieder ein kleines Prob mit der Api! Wie kann ich nen Button aktivieren und deaktivieren??

Ich dachte mit BM_SETSTATE würde es klappen, aber das funzt leider ned! :(

Für Hinweise die zum Auffinden der Lösung dienen, wird eine Belohnung von 1001 Dank ausgesetzt. :D

OK, 1001 Dank ;)

Eine Frage hätt ich dann noch!

:eek:

Folgendes: Jetzt wo der Button aktiviert ist soll per Klick auf selbigen eine zweite Diaolg-Box erscheinen in welcher sich einb Listenfeld befindet. Diesem Listenfeld möcht ich Strings zuweisen.

Bei Klick auf Schliessen soll das fenster geschlossen werden und der Fokus soll zur ersten Dialogbix zurückkehren!

Folgendermaßen hatte ich es probiert:

case IDC_BUTTON3:

{

DialogBox(NULL,MAKEINTRESOURCE(IDD_DIALOG2),hwnd,DlgProc);

SetFocus(hwndDialog2);

ifstream Einlesen ("Fakes.bat", ios_base::in);

if(Einlesen.good())

{

while(!Einlesen.eof())

{

MessageBox(NULL, g_acReadln, "TEXTAUSDATEI", MB_OK);

Einlesen.getline(g_acReadln, 255);

LRESULT lres_ListInput = SendMessage(hwndList, LB_ADDSTRING,0, (LPARAM)g_acReadln);

}

}

}break;

case IDC_BUTTON4:

PostQuitMessage(0);

break;

Dummerweise wird in der List-Box nix ausgegeben, da der Handle zur Dialog-Box2 ungültig ist, und wenn ich den Button Schliessen drücke wird das komplette Programm beendet - und nicht nur wie gewünscht die Dialog-Box2! :(

Sorry, dass ich dermaßen nerv, aber das Proggie sollte eigentlich schon längst fertig sein! :(

DialogBox kommt erst dann zurück, wenn die angegebene DlgProc-Funktion den Dialog mittels EndDialog schließt. Danach ist der Dialog weg, also kannst Du nicht auf das Listenfeld zugreifen.

Der andere Dialog könnte das Listenfeld selbst während der Behandlung von WM_INITDIALOG füllen.

Aso, und was heisst das jetzt???:(

Also ich hab im WM_INITDIALOG folgendes stehen:

hwndDialog = GetDlgItem(hDlg, IDD_DIALOG1);

hwndDialog2 = GetDlgItem(hDlg, IDD_DIALOG2);

Ist das so korrekt oder kann ich nur den Handle vom 1.Dialog ermitteln??

Ich hol mir dort nämlich auch die Handles von Steuerelementen auf Dialog 1 und 2 - die von 1 sind gültig, die von 2 ned! :(

Original geschrieben von Klotzkopp

DialogBox kommt erst dann zurück, wenn die angegebene DlgProc-Funktion den Dialog mittels EndDialog schließt. Danach ist der Dialog weg, also kannst Du nicht auf das Listenfeld zugreifen.

Der andere Dialog könnte das Listenfeld selbst während der Behandlung von WM_INITDIALOG füllen.

Also das Listenfeld kann ich erst füllen wenn Dialog 1 erstllt wird, und das geschieht erst beim drücken einer Schaltfläche auf Dialog 1!

Wie ist das eigentlich wenn ich 2 Dialogboxen hab, greifen die beide auf die selbe DlgProc-Funktion zu??

Original geschrieben von Klotzkopp

Verwendest Du etwa für beide Dialoge dieselbe DlgProc? Und was ist "ned"?

Jo, ich hab nur eine DlgProc! Und ned bedeutet soviel wie nicht! ;)

Original geschrieben von GCRACK

Also das Listenfeld kann ich erst füllen wenn Dialog 1 erstllt wird, und das geschieht erst beim drücken einer Schaltfläche auf Dialog 1!

Wie ist das eigentlich wenn ich 2 Dialogboxen hab, greifen die beide auf die selbe DlgProc-Funktion zu??

Wenn das Listenfeld in Dialog 2 ist, dann kannst Du es frühestens füllen, wenn Dialog 2 erstellt wurde. Das erfährst Du durch WM_INITDIALOG. Und auf welche DlgProc die Dialoge zugeifen, gibst Du doch beim Aufruf von DialogBox selbst an. Wenn beide dieselbe verwenden, dann musst Du anhand des HWND unterscheiden, welcher Dialog gerade erstellt wurde.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.