Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » C++ seinem Prog ein icon hinzufügen..

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
10.05.2003, 21:36 Uhr
Fraenky



Hallo,
(ja ich bins..hihi)

ähm..da ich nun mein Prog fertig hab (dank der guten Hilfe!)
möchte ich gerne, dass mein Prog ein icon hat und nicht diese lahme WinFensterIcon..
Das icon ist ja fertig(oder gibts da auflagen??): 32x32 3 farbig..

wie kann ich in meinem Prog ein Icon hinzufügen?? (ohne verknüpfung erstellen..und dann Icon wechseln..)

Geht das überhaupt bei DOS Progz?? meins läuft nämlich in der DOS Konsole ab..

THX!

MfG
Fraenky
--
Welcome to the real World.

www.fraenkysweb.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.05.2003, 15:55 Uhr
Fraenky



weiss niemand wie es geht?? *bitte*
--
Welcome to the real World.

www.fraenkysweb.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.05.2003, 22:56 Uhr
Christian
C/C++ Master
(Operator)


Hi!

Ich habe das jetzt einmal ausprobiert, habe aber nicht gedacht, dass es funktioniert wegen des Konsolenfensters, aber, siehe da, es tut es doch:


C++:
#include "resource.h"
#include <windows.h>

int main(int argc, char* argv[])
{
    printf("Hallo Welt!\n");
    HWND hwnd = FindWindow(NULL, "konsoleicon");
    
    HMODULE hApp = GetModuleHandle(NULL);
    
    HANDLE hicon = LoadIcon((HINSTANCE) hApp, MAKEINTRESOURCE(IDI_ICON1));
    
    SendMessage(hwnd, WM_SETICON, (WPARAM)ICON_SMALL, (LPARAM) hicon);

    return 0;
}



Ich habe dieses Testprogramm verwendet. Du musst nur deinen Resourcen das Icon hinzufügen und diesen Code am Anfang deines Programms einfügen und noch ein wenig anpassen.

Edit: Ich habe gerade bemerkt, dass das nur funktioniert, wenn ich das Programm als Debug laufen lasse... Hm... nochmals überdenken...

Edit2: Okay, wenn man anstelle von FindWindow(..) GetForegroundWindow() verwendet, funktioniert es. => FindWindow() scheint in diesem Fall das Fenster nicht zu finden. Wie dem auch sei, sobald man das HWND hat, dann funktioniert es!
--
Grüße, Christian

Dieser Post wurde am 12.05.2003 um 23:01 Uhr von Christian editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.05.2003, 08:36 Uhr
~Fraenky
Gast


Erstma danke!!

wie füge ich den meine Icon den resourcen.h zu??

also der ganze Code incl. der veränderten Funktionen sieht so aus?)


C++:
#include "resource.h"
#include <windows.h>

int main(int argc, char* argv[])
{
    printf("Hallo Welt!\n");
    HWND hwnd = GetForegroundWindow(NULL, "konsoleicon");
    
    HMODULE hApp = GetModuleHandle(NULL);
    
    HANDLE hicon = LoadIcon((HINSTANCE) hApp, MAKEINTRESOURCE(IDI_ICON1));
    
    SendMessage(hwnd, WM_SETICON, (WPARAM)ICON_SMALL, (LPARAM) hicon);

    return 0;
}




(Ich bin inner School info unterricht..deswegen bin ich net eingeloggt.)

MfG
Fraenky
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.05.2003, 08:51 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo,
du musst erstmal eine Resourcendatei erstellen (.rc) diese generiert dir dann normalerweisse automatisch die resource.h...
in der RC-Datei lässt sich dann das icon hinzufügen!

nochwas, GetFroegroundWindow braucht keinen Parameter also so:


C++:
HWND hwnd = GetForegroundWindow();


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.05.2003, 09:26 Uhr
~Fraenky
Gast


sorry ich habs nicht kapiert..

wie muss die *rc datei denn aussehen?? soll ich einfach den Editor öffnen und dann leer als *rc datei abspeichern?? *hää?*

Und wie füge ich denn ein icon dazu??

Ich habe keine Ahnung davon..

gibt es die resource.h nicht schon irgendwo im Ordner des Compilers?? wie es andere zB iostream.h schon vorhanden sind??

*banhofkofferklau*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.05.2003, 10:00 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


OK Also,

Editor öffnen, folgendes reinschreiben:


C++:
#include "resource.h"

IDI_ICON1 ICON "pfadzum\\icon.ico"



abspeichern als z.b Programm.rc

dann

Editor öffnen, folgendes reinschreiben:


C++:
#define IDI_ICON1 100



als resource.h abspeichern ...

dann sollte das icon benutzbar sein (jedenfalls wenn es dort wo du es angegeben hast existiert!
--
class God : public ChuckNorris { };

Dieser Post wurde am 13.05.2003 um 10:00 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.05.2003, 15:50 Uhr
Fraenky



OK! Danke! werd ich nachher gleich mal auspropieren!

habs ausprobiert ist auch alles glatt geganegen mit kompielieren und so..aber irgendwie ist bei der *exe Datei das icon nicht zu sehen. Es ist im gleiche Ordner wie die exe und als Pfad hab ich einfach

IDI_ICON1 ICON "n.ico"

geschrieben.

Es ist aber nicht zu sehen..

hab ich rigendwas falsch gemacht??

Achja ich hab alle anderen datein ohne *.h inculdet und dann using namespace std;verwednet, außer bei #include "resource.h"..

hat das was zu sagen??
--
Welcome to the real World.

www.fraenkysweb.de

Dieser Post wurde am 13.05.2003 um 16:02 Uhr von Fraenky editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
13.05.2003, 19:24 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat:
Fraenky postete
habs ausprobiert ist auch alles glatt geganegen mit kompielieren und so..aber irgendwie ist bei der *exe Datei das icon nicht zu sehen. Es ist im gleiche Ordner wie die exe und als Pfad hab ich einfach

IDI_ICON1 ICON "n.ico"

geschrieben.

Es ist aber nicht zu sehen..

hab ich rigendwas falsch gemacht??

Achja ich hab alle anderen datein ohne *.h inculdet und dann using namespace std;verwednet, außer bei #include "resource.h"..

hat das was zu sagen??



Wo das Icon liegt ist egal, hauptsache der pfad stimmt beim compilieren! (das icon wird nicht aus der datei geladen, sondern aus der anwendung)
Was du probieren kannst ist das du z.b das icon in einen festen pfad

c\icon.ico

kopierst und dann den pfad in der rc datei richtig setzt, dann neukompilieren und ausprobieren!
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
13.05.2003, 20:55 Uhr
Fraenky



Klappt nicht..
mein Pfad:

IDI_ICON1 ICON "d\Eigene Dateien\\Fraenky\\Coding\\C++\\netsend\\n.ico"

das Prog heisst netsendbat, d.h die *rc Datei muss auch netsendbat.rc heissen??

Ich hab auch Vsiaul C++ aufm rechner installiert und wenn ich meine *rc dateiu öffnen will, meckert er:
fatal error RC1004: unexpected end of file found

sonst hab ich alles ausprobiert..

*help*
--
Welcome to the real World.

www.fraenkysweb.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: