AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Button anklicken bei WM_CREATE

Ein Thema von DevilsCamp · begonnen am 8. Mär 2006 · letzter Beitrag vom 10. Mär 2006
Antwort Antwort
DevilsCamp
(Gast)

n/a Beiträge
 
#1

Button anklicken bei WM_CREATE

  Alt 8. Mär 2006, 16:59
Ich habe ein Programm, das rein mit API geschrieben ist.
Diesem Programm kann ich beim Start Parameter übergeben.

Hat nun einer dieser einen bestimmten Wert, so möchte ich, dass ein bestimmter Button angeklickt wird. Also im Grunde das OnClick-Ereignis, wenn ich mit VCL programmiert hätte.

Ich benutze folgenden Code beim behandeln der WM_CREATE-Message:
Delphi-Quellcode:
              
if (UpperCase(ParamStr(i))='START') then
begin
  x := (BN_CLICKED * (High(Word)+1))+IDC_BSTART;
  SendMessage(hwndHauptfenster, WM_COMMAND, x, 0)
end;
Doch leider kommt diese Nachricht nie beim Hauptfenster an.

Ich habe es auch schon bei WM_ACTIVATE versucht...
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Button anklicken bei WM_CREATE

  Alt 8. Mär 2006, 17:08
Zitat von DevilsCamp:
x := (BN_CLICKED * (High(Word)+1))+IDC_BSTART;
MSDN-Library durchsuchenMAKEWPARAM macht das gleiche, und es sieht im Quellcode gefälliger aus. Und da du bei einem API-Programm eh die Windows-Unit einbaust, kannst du das Makro bzw. die Funktion auch nutzen.
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#3

Re: Button anklicken bei WM_CREATE

  Alt 8. Mär 2006, 17:12
hmm
Interessant. Man lernt nie aus...


Aber mein Problem löst es trotzdem nicht
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: Button anklicken bei WM_CREATE

  Alt 8. Mär 2006, 17:17
Bei mir schon. Ich habe mal eben aus den allseits bekannten Win32-API-Tutorials das normale Button-Sample entpackt und die WM_CREATE-Anweisung am Schluss um
SendMessage(hWnd, WM_COMMAND, MAKEWPARAM(IDC_BMPBUTTON, BN_CLICKED), 0); ergänzt. Da begrüßte mich beim Start des Programms die "Schick, oder?"-Box.
  Mit Zitat antworten Zitat
Benutzerbild von KingIR
KingIR

Registriert seit: 19. Feb 2006
81 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Button anklicken bei WM_CREATE

  Alt 8. Mär 2006, 18:38
Ansonsten böte sich u.U. auch noch BM_CLICK an

SendMessage(hWnd, BM_CLICK, 0, 0);
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#6

Re: Button anklicken bei WM_CREATE

  Alt 10. Mär 2006, 08:26
So ich habe herausgefunden, warum es nicht ging:

Ich habe ein Array, in dem ich alle Handles aller Fenster speichere, die ich erstelle.
Das Hauptfenster erstelle ich so:
handlearray[0] := CreateWindowEx() Und in der WM_CREATE-Message-Behandlung verwende ich handlearray[0] als Handle des Ziel-Fensters für den simulierten Button-Klick (habe den Code, den ich gepostet hatte leicht abgewandelt, da ich dachte, es sei nicht von Bedeutung).
Da aber handlearray[0] erst dann einen Wert bekommt NACHDEM das Hauptfenster erstellt wurde, also zum Zeitpunkt WM_CREATE irgendeinen Wert hat, wird die Nachricht irgendwohin gesendet, nur nicht an mein eigenes Fenster. Ich habe inzwischen als Handle den Wert genommen, der bei meiner Fenster-Prozedur als Parameter übergeben wird. Und schon funktioniert es so, wie ich es mir wünsche
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz