button clicken in eine manderen programm???



  • Zuweisen passiert meines erachtens nur wenn man ein Dialog in einer .DLL abgelegt hat, wie z.B. in Windows(shell32.dll)...



  • Christian411 schrieb:

    Der Code dürfte nur funktionieren, wenn es der erste Button und das einzige Objekt ist

    Sein Code ist schon relativ flexibel, da sich die (eindeutige) ID ja i.d.R. nicht ändert. Du bekommst sowas übrigens über die Spy++ heraus.

    Wolfgang T. schrieb:

    gibt es auch eine Funktion, mit der man die Font eines Buttons ändern könnte?

    SendMessage und WM_SETFONT 😉 .

    Der Neue schrieb:

    @ Christian nein, nicht wenn eine ID zugewiesen worden ist, wie in dem Fenster "Ausführen" unter Windows XP!

    Stimmt nicht ganz, da man ID's bspw. durch einen Aufruf von

    SetWindowLongPtr(hWndButton, GWL_ID, NEUE_ID);
    

    auch noch nachträglich ändern kann.
    ➡ Aber...wer macht das schon :p .



  • gut!



  • Danke!

    Mfg Wolfgang T.



  • hallo!
    habe wieder eine Frage...

    HWND a = FindWindow(NULL, "Ausführen");
    HWND p = GetDlgItem(a, 1);
    HFONT lr;
    SendMessage(p, WM_SETFONT, (WPARAM)lr, 0);
    

    Versuche vergeblich die Schriftart zu ändern nun stecke ich fest:

    ich habe bereits herausgefunden, dass man HFONT als Handle nehmen muss nun weiß ich nicht, wie ich deise so hinbekomme, dass ich zum schluss eine andere schriftart habe z.B. Times New Roman oder so

    Könnt ihr mir weiterhelfen?





  • Nun bin ich so weit, aber die schrift wird nur dick und niht verändert (Schriftart oder so)

    HWND ac = FindWindow(NULL, "Ausführen");
    HWND p = GetDlgItem(ac, 1);
    LOGFONT lFont;
    
    lFont.lfHeight = -11;
    lFont.lfWidth = 0;
    lFont.lfEscapement = 0;
    lFont.lfOrientation = 0;
    lFont.lfWeight = FW_THIN; //FW_BOLD
    lFont.lfItalic = false;
    lFont.lfUnderline = false;
    lFont.lfStrikeOut = false;
    lFont.lfCharSet = ANSI_CHARSET;
    lFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
    lFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
    lFont.lfQuality = DEFAULT_QUALITY;
    lFont.lfPitchAndFamily = FF_DONTCARE;
    strcpy(lFont.lfFaceName, "Arial");
    HFONT hfont = CreateFontIndirect(&lFont);
    
    SendMessage(p, WM_SETFONT, (WPARAM)hfont, true);
    

    Was ist hierdran falsch muss doch gehen...



  • hmmm... Müsste eigentlich gehen. Spiel doch mal etwas mit lfHeight und lfFaceName rum.
    Übrigends, die DEFAULT-Konstanten (bis auf DEFAULT_CHARSET) und ANSI_CHARSET sind alle 0. Also gehts auch kürzer:

    LOGONT lFont;
    ZeroMemory( &lFont, sizeof(lFont) );
    lFont.lfHeight = -11;
    strcpy(lFont.lfFaceName, "Arial");
    HFONT hfont = CreateFontIndirect(&lFont);
    

    Und als Höhe finde ich persönlich die positiven Werte schöner, da wird anders gemappt und sieht halt etwas anders aus, aber das nur am Rande 😉



  • Bei mir wird das immer dick und bleibt auch dick....
    keine andere Schriftart keine andere dicke garnichts...

    Kann mir denn wirklich keiner helfen???



  • Also...
    ich meiner Form geht das alles z.B.

    Label1->Font->Handle = hfont;
    

    nur wenn ich mit dem befehl SendMessage hantiere, dann wird es nur dick und nicht anders (Schriftart oder so)

    also liegt es doch daran....


Anmelden zum Antworten