WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Simulationen > Designer Forum

Designer Forum Treffpunkt für Gedankenaustausch von Simmern, die selbst

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 05.02.2003, 20:32   #1
pschartau
Newbie
 
Registriert seit: 05.02.2003
Beiträge: 12


Frage Gauge-Newbie-Frage

Hallo,
ich habe mir das Microsoft Panels & Gauge SDK heruntergeladen, und versuche jetzt meine erste Gauge in C zu programmieren. Ich habe mäßige C-Kenntnisse, aber relativ gute allgemeine Programmierfähigkeiten. Ich habe es hingekriegt, eine einfache Gauge zu erstellen, die nur aus einem Hintergrundbild besteht. Jetzt möchte ich aber einen einfachen String anzeigen. Und der wird einfach nicht angezeigt, obwohl die Gauge problemlos kompiliert. Wahrscheinlich mache ich etwas fundamental falsch, daher hier mein kompletter Code:
Code:
//	Set up gauge header
char main_gauge_name[]		= GAUGE_NAME;
extern PELEMENT_HEADER		main_list;
extern MOUSERECT			main_mouse_rect[];

GAUGE_HEADER_FS700( GAUGE_W, main_gauge_name, &main_list, \
						main_mouse_rect, 0, 0, 0, 0 );

#define GAUGE_CHARSET				DEFAULT_CHARSET
#define GAUGE_FONT_DEFAULT			"Courier New"
#define GAUGE_WEIGHT_DEFAULT		FW_NORMAL

/////////////////////////////////////////////////////////////////////////

STRING_UPDATE_CALLBACK title_update;

MAKE_STRING
(
	title_string,
	NULL,
	NULL,
	IMAGE_USE_ERASE | IMAGE_USE_BRIGHT | IMAGE_USE_TRANSPARENCY,
	0,
	20, 20,
	60, 10,
	17,
	MODULE_VAR_NONE,
        MODULE_VAR_NONE,
	MODULE_VAR_NONE,
	RGB(255,0,0),
	RGB(0,0,0),
	RGB(92,92,92),
	GAUGE_FONT_DEFAULT,
	GAUGE_WEIGHT_DEFAULT,
	GAUGE_CHARSET,
	0,
	DT_CENTER | DT_VCENTER | DT_SINGLELINE,
	NULL,
	title_update
)

FLOAT64 FSAPI	title_update( PELEMENT_STRING pelement )

{
	FLOAT64 val=pelement->source_var[0].var_value.n;
	val = !val;

	wsprintf(pelement->string, "%9s", "TestGauge");

	return val;
}


PELEMENT_HEADER		strings_list[] =
{
	&title_string.header,
	NULL
};


/////////////////////////////////////////////////////////////////////////////
MAKE_STATIC
(
	main_background,
	BMP_BACKGROUND,
	NULL,
	NULL,
	IMAGE_USE_TRANSPARENCY,
	0,
	0, 0
)

PELEMENT_HEADER		main_list	= &main_background.header;

/////////////////////////////////////////////////////////////////////////////
MOUSE_BEGIN( main_mouse_rect, NULL, 0, 0 )
MOUSE_END


/////////////////////////////////////////////////////////////////////////////
#undef GAUGE_NAME
#undef GAUGEHDR_VAR_NAME
#undef GAUGE_W
Ich wäre sehr dankbar, wenn mir jamand sagen könnte, warum mein String einfach nicht angezeigt wird.

Gruß
Philipp
pschartau ist offline   Mit Zitat antworten
Alt 05.02.2003, 21:03   #2
HansHartmann
Inventar
 
Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908


Standard

Längenangabe bei Strings? Gut, ich kenne die C Standard Library nicht vollkommen auswendig, aber mir ist neu, dass das geht.

Mach mal aus dem
wsprintf(pelement->string, "%9s", "TestGauge");
ein
wsprintf(pelement->string, "%s", "TestGauge");

Wenn das auch nicht hilft, dann ersetz wsprintf() durch das "normale" sprintf() (stdio.h includen!). Ich meine, dass ich mit wsprintf() schon mal so meine Problemchen im Zusammenhang mit Gauges hatte.
____________________________________
Bis dann,
Hans
Digital Aviation
HansHartmann ist offline   Mit Zitat antworten
Alt 05.02.2003, 21:26   #3
pschartau
Newbie
 
Registriert seit: 05.02.2003
Beiträge: 12


Standard

Hans,
danke für deine Hilfe. Leider hat keine der beiden Methoden mein Problem gelöst. Fällt dir noch etwas ein, woran es liegen könnte?

Gruß
Philipp
pschartau ist offline   Mit Zitat antworten
Alt 05.02.2003, 21:57   #4
HansHartmann
Inventar
 
Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908


Standard

Ich könnte mir höchstens noch vorstellen, dass der String niemals aktualisiert weil Du dreimal MODULE_VAR_NONE benutzt. Ansonsten sehe ich in dem Code eigentlich kein Problem.
____________________________________
Bis dann,
Hans
Digital Aviation
HansHartmann ist offline   Mit Zitat antworten
Alt 05.02.2003, 22:01   #5
pschartau
Newbie
 
Registriert seit: 05.02.2003
Beiträge: 12


Standard

Und wie würde ich es dann schaffen, die Anzeige zum ersten Mal zu aktualisieren?
Ich darf doch sicher nicht "TestGauge" statt MODULE_VAR_NONE direkt in die MAKE_STRING-Zeile schreiben, oder?

Gruß
Philipp
pschartau ist offline   Mit Zitat antworten
Alt 05.02.2003, 22:12   #6
HansHartmann
Inventar
 
Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908


Standard

Nein, aber zum Bleistift CLOCK_SECOND oder TICK18.
____________________________________
Bis dann,
Hans
Digital Aviation
HansHartmann ist offline   Mit Zitat antworten
Alt 05.02.2003, 23:47   #7
pschartau
Newbie
 
Registriert seit: 05.02.2003
Beiträge: 12


Standard

Selbst das funktioniert nicht. Was soll ich tun? *Verzweiflung!*

Gruß
Philipp
pschartau ist offline   Mit Zitat antworten
Alt 06.02.2003, 18:44   #8
HansHartmann
Inventar
 
Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908


Standard

Hartmann, Du bist blind....

Das Problem ist nicht im MAKE_STRING, sondern unten im MAKE_STATIC. Da fehlt nämlich die Verkettung zum String oben (die Zeile mit dem &strings_list):

MAKE_STATIC
(
main_background,
BMP_BACKGROUND,
&strings_list,
NULL,
IMAGE_USE_TRANSPARENCY,
0,
0, 0
)

Hoffentlich klappt's nun.
____________________________________
Bis dann,
Hans
Digital Aviation
HansHartmann ist offline   Mit Zitat antworten
Alt 06.02.2003, 21:35   #9
pschartau
Newbie
 
Registriert seit: 05.02.2003
Beiträge: 12


Standard

Juchu, ich bin gerettet!
Danke Hans, es funktioniert!
Ich glaube ich lese mir den Absatz über plists im Manual nochmal ganz genau durch...

Gruß
Philipp
pschartau ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist an.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:23 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag