![]() |
![]() |
|
|
|||||||
| Designer Forum Treffpunkt für Gedankenaustausch von Simmern, die selbst |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Newbie
![]() Registriert seit: 05.02.2003
Beiträge: 12
|
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
Gruß Philipp |
|
|
|
|
|
#2 |
|
Inventar
![]() Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908
|
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. |
|
|
|
|
|
#3 |
|
Newbie
![]() Registriert seit: 05.02.2003
Beiträge: 12
|
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 |
|
|
|
|
|
#4 |
|
Inventar
![]() Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908
|
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.
|
|
|
|
|
|
#5 |
|
Newbie
![]() Registriert seit: 05.02.2003
Beiträge: 12
|
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 |
|
|
|
|
|
#6 |
|
Inventar
![]() Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908
|
Nein, aber zum Bleistift CLOCK_SECOND oder TICK18.
|
|
|
|
|
|
#7 |
|
Newbie
![]() Registriert seit: 05.02.2003
Beiträge: 12
|
Selbst das funktioniert nicht. Was soll ich tun? *Verzweiflung!*
Gruß Philipp |
|
|
|
|
|
#8 |
|
Inventar
![]() Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908
|
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. |
|
|
|
|
|
#9 |
|
Newbie
![]() Registriert seit: 05.02.2003
Beiträge: 12
|
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 |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|