1

Bonjour a tous,

j'ai actuellement deux problemes dont je ne trouve nul part la solution:
1°)

- Afficher du texte en couleur dans une liste box pour chaque élements (pas toute la listbox).
- Afficher une couleur de fond pour chaque élements (pas toute la listbox).

J'ai essayé en passant le paramettre NOREDRAW et en colorant/affichant moi même les élements, c'est passable, mais ca chie avec la scrol barre qui ne s'actualise pas :I

2)°

Je crée dans mon programme un fenetre principale (CreateWindowEx), puis je créé ma listbox.
Ca donne donc ca en gros:

Initialisation, récuperaion des evenements:
LRESULT CALLBACK WndProc( HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)

{
switch (uMsg)
{

case WM_CREATE:

// ...

}

La boucle principale de ma fenetre:

while(!done)
{

if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if (msg.message==WM_QUIT)
done=TRUE;
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}

tout marche bien, SAUF, quand je scroll la barre de la listbox: le programme se freeze au niveau du PeekMessage loop.

- J'aimerais bien savoir s'il existe un parametre ou un truc a faire pour que le scroll de ma listbox ne freeze pas tout le programme ...

Si quelqu'un sait comment résoudre ca ... smile

Merci !


( en C )
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©

2

BOn j'arrive désormais a afficher correctement en redissinant les boites, mais la barre de scroll deconne sad
Elle se rafraichit pas, si qqun a une idée...
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©

3

La solution est simple -> tu fais ça correctement sans passer par des vieux hacks totalement non fiables et qui pourraient foirer sur n'importe quelle version plus récente de windows...

Que je sache l'owner drawing est très bien documenté alors si tu avais fait l'effort de lire la doc correctement tu l'aurais trouvé...

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/common/user.asp
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

4

Merci, j'ai réussi a faire ca proprement maintenant, mais le probleme du freeze quand je scroll la list n'est toujours pas résolu sad
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©

5

Bah t'as bien un débogueur qq part pour faire un trace à l'endroit où ça plante (genre regarder le contenu de msg) non ?
Si en utilisant l'owner drawing ça plante, ba euh, c'est que t'as une couille ailleurs... (Et faire planter un scrolling, bah... c'est assez fort quand même)
Il fait quoi d'autre ton programme à part dessiner dans un listbox ?
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

6

Ca plante pas, ca fait freeze le programme pdt le scroll .
Ca n'a rien a voir avec l'owner drawing, ca le faisait deja avant. Sinon a part ca,il affiche un graphique en OpenGL dans une autre fenetre . Ca ressemble a une histoire de focus, qd je scroll en cliquant sur la barre de scroll, le focus passe sur la list box et ca bloque ma main fenetre ...
(j'avais test les msg recu, mais scroller la barre a priori n'envoie pas de msg )

(Edit: Les threads parconter sont pas bloqués)
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©

7

Hmm ton app est multithreaded ? Si c'est le cas ton problème vient probablement de là (En y repensant c vrai que les freeze sont typiques des threads non synchronisés).
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes