See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: Premier projet - problème d'affichage  (Read 1877 times)

0 Members and 1 Guest are viewing this topic.

Offline chpeller

  • Jr. Member
  • **
  • Posts: 23
  • Karma: 0
16 May 2013, 12:42:02
Bonnjour à tous,

Je me lance dans un premier projet d'add-on, un container UCGO dans le style StarWars, qui sera ensuite suivi d''autres vaisseaux. Je voudrais afficher à l'extérieur du container le nom avec lequel il a été créé tout comme pour le DGIV ou le shuttleA (bien que dans ce dernier cas ça ne fonctionne pas bien). Je n'arrive pas a faire fonctionner le truc.
Il faut préciser que je n'y connais rien en C++ alors je tatonne.
Quelqu'un aurait-il un template complet qui utilise cette fonction ? (skecthpad).

D'avance merci pour votre aide.


Offline chpeller

  • Jr. Member
  • **
  • Posts: 23
  • Karma: 0
Reply #1 - 16 May 2013, 16:43:42
Je vous donne quelques précisions :
 Voici mon code :
// --------------------------------------------------------------
//Affichage nom du vaisseau sur le container
// --------------------------------------------------------------

void rebcontainer::PaintMarkings (SURFHANDLE tex)
{
   oapi::Font *font = oapiCreateFont (38, true, "Sans", FONT_BOLD);
   oapi::Sketchpad *skp = oapiGetSketchpad (tex);
   if (skp) {
      skp->SetFont (font);
      skp->SetTextColor (0xB20000);
//      skp->SetBackgroundMode (BK_TRANSPARENT);
      skp->SetTextAlign (oapi::Sketchpad::CENTER);
      char cbuf[20];
      strncpy (cbuf, GetName(), 10);
      int len = min(strlen(GetName()), 10);
      skp->Text (123, 219, cbuf, len);
      skp->Text (227, 219, cbuf, len);
//      skp->SetTextColor (0x808080);
//      skp->SetTextAlign (oapi::Sketchpad::RIGHT);
//      skp->Text (120, 158, cbuf, len);
//      skp->SetTextAlign (oapi::Sketchpad::LEFT);
//      skp->Text (133, 158, cbuf, len);
      oapiReleaseSketchpad (skp);
   }

Résultat : Nib !!! Pas plus de nom sur la texture que de plume sur ma tete de piaf !


Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #2 - 16 May 2013, 19:39:35
As tu ceci dans ton code (vers la fin) :

Code: [Select]
DLLCLBK void InitModule (HINSTANCE hModule)
{
g_Param.hDLL = hModule;
oapiRegisterCustomControls (hModule);
}

// --------------------------------------------------------------
// Module cleanup
// --------------------------------------------------------------
DLLCLBK void ExitModule (HINSTANCE hModule)
{
oapiUnregisterCustomControls (g_Param.hDLL);
}

Et tu doit avoir ça je crois dans clbkSetClassCaps
Code: [Select]
PaintMarkings (texname)
A+



Message modifié ( 16-05-2013 19:41 )

« Last Edit: 16 May 2013, 20:00:29 by ea76620 »

Offline chpeller

  • Jr. Member
  • **
  • Posts: 23
  • Karma: 0
Reply #3 - 16 May 2013, 19:48:00
Bonjour,

Pour la première partie je n'avais pas et maintenant au débuggage j'ai ça :
>rebcontainer.cpp(479): error C2065: 'g_Param' : identificateur non déclaré
1>rebcontainer.cpp(479): error C2228: la partie gauche de '.hDLL' doit avoir un class/struct/union
1>          le type est ''unknown-type''
1>rebcontainer.cpp(480): error C3861: 'oapiRegisterCustomControls' : identificateur introuvable
1>rebcontainer.cpp(488): error C2065: 'g_Param' : identificateur non déclaré
1>rebcontainer.cpp(488): error C2228: la partie gauche de '.hDLL' doit avoir un class/struct/union
1>          le type est ''unknown-type''
1>rebcontainer.cpp(488): error C3861: 'oapiUnregisterCustomControls' : identificateur introuvable
Il doiot me m anquer quelque chose dans le header ..

Pour la seconde j'ai ça :
void rebcontainer::clbkPostCreation ()
{
   if (SpecTex)
      PaintMarkings (SpecTex);
}
Mais rien à ce sujet dans le clbkSetClassCaps

« Last Edit: 16 May 2013, 20:00:29 by chpeller »

Offline chpeller

  • Jr. Member
  • **
  • Posts: 23
  • Karma: 0
Reply #4 - 16 May 2013, 20:00:29
Après vérification les paramètres que vous me donnez sont en techno GDI et ne devrait servir à rien dans mon cas puisque je suis en techno Sketchpad qui a l'avantage (quand ça marche) d'être plus compatible avec les cartes graphiques.
Ce qui m'inquiète en effet c'est que dans la DG il y a un savant mélange des deux !!!! Ce qui d'après le guide du SDK ne devrait pas être le cas.

« Last Edit: 16 May 2013, 20:00:29 by chpeller »