Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1511 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7
Auteur Sujet :

[C / C++] le topic des bras cassés de la progue windows

n°1262943
chrisbk
-
Posté le 09-12-2005 à 18:29:13  profilanswer
 

Reprise du message précédent :
et REPONDEZ

mood
Publicité
Posté le 09-12-2005 à 18:29:13  profilanswer
 

n°1262969
chrisbk
-
Posté le 09-12-2005 à 18:47:55  profilanswer
 

bon, autre question, jvous sens chaud [:petrus75]
 
j'ai un bitmap 256couleurs bmp, foutu en ressource
 
je le charge via LoadBitmap
 
dessus je fais
 

Code :
  1. BITMAP bmp;
  2. GetObject(btmsizeof(BITMAPINFO),&bmp);


 
et bmp.biBitCount m'indique 32, ce qui me fait puissament chier vu que je voulais changer la palette en run time
 
skoi ce merdier ? [:sisicaivrai]


Message édité par chrisbk le 09-12-2005 à 18:48:35
n°1263062
retrox
Posté le 09-12-2005 à 19:56:29  profilanswer
 

LoadBitmap créé un ddb si je ne m'abuse (bien que ce ne soit pas explicitement dit dans la MSDN).
LoadImage avec un LR_CREATEDIBSECTION bien placé devrait te retourner ton bitmap 8 bits.

n°1263065
retrox
Posté le 09-12-2005 à 19:58:49  profilanswer
 

chrisbk a écrit :

bon, j'ai un gros pas compris, la
 
j'ai une listbox en owner draw. De temps en temps windows appelle une fonction a moi en lui filant un HDC, je barbouille dedans et on est super content. Du text, des FillRects toussa
 
Seulement la je viens d'ajouter une image que j'ecris dans l'HDC fourni via BitBlt. ca marche, mais si je fais passer une fenetre sur ma listbox, alors l'image disparait. Le texte reste la, les rectangles FillRecté aussi, mais pas l'image
 
Pourquoi elle, elle s'en va ?  
 
ca fait chier, fo que je gere du double buffer & cie ? ca va etre archi penible ...


Screenshot?  [:arn0]  
Y a pas une histoire de background la dessous?
Et avec un bon InvalidateRect, ça marche pas?

n°1263069
chrisbk
-
Posté le 09-12-2005 à 20:03:41  profilanswer
 

alors,
 
1/ouais LoadImage est impec !
2/ c'etait une bouletterie de ma part
je faisais  
 

Code :
  1. HDC dc = CreateCompatibleDC(dest);
  2. ..;
  3. ReleaseDC(destHWND, dc);


 
 
alors qu'il faut faire un DeleteDC [:petrus75]
 
 

n°1263229
Mackila
Posté le 09-12-2005 à 22:05:09  profilanswer
 

C'est bon j'ai trouvé pour les res:// ce qui faisait chier, et je peux choisir mes noms comme je veux. Par contre faut s'éditer le fichier de ressources à la main.
En fait je sais pas si je vais pas dire à VS que son fichier de ressource, il s'ouvre par défaut en mode texte, ca sera plus pratique [:petrus75]

n°1263250
chrisbk
-
Posté le 09-12-2005 à 22:17:39  profilanswer
 

tu peux expliquer la manippe ? [:el g]

n°1263358
Mackila
Posté le 09-12-2005 à 23:06:37  profilanswer
 

dans ton fichier de ressources, si t'ajoute une ressource avec l'IDE ca ajoute dans le .rc :

IDR_TRUC1             BITMAP                 "res\\dawa.bmp"


et dans le resource.h :

#define IDR_TRUC1  131


Ce qui te force à écrire (faut savoir que les bitmaps c'est 2 :o ) :

<img src="res://#2/#131" />


 
 
Si tu édite le fichier .rc à la main, tu mets :

dawa.bmp             res               "res\\dawa.bmp"


et ta page contiendra alors :

<img src="res/dawa.bmp" />


 
La feinte consistant ici à stocker tes .htm dans le / du projet, et les fichiers des ressources dans le /res/ du projet (d'ou les images apparaissent dans l'IDE, car elle sont chopées dans le répertoire res du projet, et elle apparaissent aussi dans le prog, car elles sont alors chargées dans les ressources, et le tout avec le même nom)
 
C'est quand même bien lourdingue de devoir faire ca à la main, zauraient un peu pu prévoir dans l'IDE, c'est bien la peine de se faire chier à faire des outils d'édition HTML graphiques (pourris au demeurant, il bouzille tout le code HTML...) pour devoir se taper les images dans les ressources comme ca à la warrior :o !
 
edit : enlevé un peu d'espaces dans les exemples de .rc pour que tout tienne dans une ligne

Message cité 1 fois
Message édité par Mackila le 09-12-2005 à 23:07:25
n°1263362
chrisbk
-
Posté le 09-12-2005 à 23:08:59  profilanswer
 

effectivelent, stun peu barbare [:el g]

n°1263412
Mackila
Posté le 10-12-2005 à 00:04:41  profilanswer
 

Ouaip mais maintenant j'ai la joie de pouvoir faire du web et du MFC en même temps !  [:dawa]
 
Tant qu'on y est, personne sait comment on fait pour demander à IE (et à tous les activex, CDHtmlDialog et autres) de se mettre en "Taille du texte" : "Moyenne" ?
Dans ma boite de dialogue j'intercepte tout ce qui ressemble de pres ou de loin à un raccourcis de IE (pour éviter que les mecs utilisent mon appli pour surfer ou qu'ils me défoncent ma zolie interface en lancant n'importe quoi :o ), mais si le dit IE est paramétré à l'avance avec une taille de police que j'aime pas, ca va tout me foutre en l'air :o (et non, je veux pas mettre de taille fixe pour les polices, car je veux que ca reste comme j'ai demandé si l'utilisateur se met en 144 dpi parcequ'il a un écran de barbare ! - et non j'en ai rien à battre d'avoir bouzillé le réglage de police de IE, les PCs avec cette appli n'auront /jamais/ acces au net :o - pis le réglage de taille moyenne c'est ce qu'il y a par défaut, les sites et les docs s'affichent tres bien avec - pis répondez juste à la question :o - je sais j'anticipe un peu la  :sol: )

mood
Publicité
Posté le 10-12-2005 à 00:04:41  profilanswer
 

n°1263866
el muchach​o
Comfortably Numb
Posté le 11-12-2005 à 10:46:23  profilanswer
 

Mackila a écrit :


C'est quand même bien lourdingue de devoir faire ca à la main, zauraient un peu pu prévoir dans l'IDE, c'est bien la peine de se faire chier à faire des outils d'édition HTML graphiques (pourris au demeurant, il bouzille tout le code HTML...) pour devoir se taper les images dans les ressources comme ca à la warrior :o !


C'est tout Visual, ca.[:dawao]
Ca me rappelle le projet ou on editait les fichiers de projet de VC++ 6 a la main, - ceux ou il est bien marque en haut qu'il ne faut PAS les editer a la main, et quand on le fait, on comprend pourquoi  :cry:  -.  
On le faisait parce que ca permettait de les mettre en conf clearcase et de builder en-dehors de l'IDE (il faut savoir qu'avec VC6, je ne sais pas si c'est le cas avec VC7.1, le build etait a peu pres 2x plus rapide en dehors de l'IDE :sarcastic:, et de plus, on utilisait quelques scripts au milieu du build).


Message édité par el muchacho le 11-12-2005 à 10:53:42

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°1264316
Mackila
Posté le 12-12-2005 à 10:29:58  profilanswer
 

LA QUESTION §§§
 
Faites pas mourrir ce topic tout de suite, il pourrait etre utile...

n°1264317
chrisbk
-
Posté le 12-12-2005 à 10:32:16  profilanswer
 

evidemment qu'il est utile, smon topic [:el g]

n°1264330
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-12-2005 à 11:25:26  profilanswer
 

et la mienne ? [:benou]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1264334
chrisbk
-
Posté le 12-12-2005 à 11:27:39  profilanswer
 

entre tes jambes ?

n°1264338
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-12-2005 à 11:28:49  profilanswer
 

bandes de petites bites va ! pour faire mumuse avec du GUI, y'a du monde, mais dés que ça se corse et qu'on touche aux hooks, yapupersonne [:el g]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1264343
chrisbk
-
Posté le 12-12-2005 à 11:32:32  profilanswer
 

t'as qu'a demander au captain, y s'y connait lui [:el g]

n°1264397
red factio​n
Posté le 12-12-2005 à 12:29:18  profilanswer
 

bah les hook spa bien difficile  
 
une dll que t'injecte dans le process, qq instructions asm bien placées et voila ......

n°1264450
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-12-2005 à 13:44:03  profilanswer
 

que vient foutre l'asm là dedans ? [:xx_xx]


Message édité par Harkonnen le 12-12-2005 à 14:10:43

---------------
J'ai un string dans l'array (Paris Hilton)
n°1264452
chrisbk
-
Posté le 12-12-2005 à 13:44:38  profilanswer
 

jsaipas, mais oublie pas de passer ton process en ring0

n°1264487
red factio​n
Posté le 12-12-2005 à 14:03:28  profilanswer
 

on vois que vous n'avez jamais essaye de mettre un hook sur une api, parce qu'une des facon les plus simples et les plus faciles c avec un ptit jmp asm :o

n°1264489
chrisbk
-
Posté le 12-12-2005 à 14:04:30  profilanswer
 

moi c'est plutot sur les filles que je mets des grapins [:sinking]

n°1264497
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-12-2005 à 14:10:18  profilanswer
 

red faction a écrit :

on vois que vous n'avez jamais essaye de mettre un hook sur une api, parce qu'une des facon les plus simples et les plus faciles c avec un ptit jmp asm :o


ah mais jte rassure, j'ai aucun souci pour implémenter mes hooks, c'est mes hooks qui ont un souci avec les logiciels microsoft [:petrus75]
http://forum.hardware.fr/hardwaref [...] m#t1261962


---------------
J'ai un string dans l'array (Paris Hilton)
n°1264580
Scarmatil
magma idempotent
Posté le 12-12-2005 à 15:08:26  profilanswer
 

Code :
  1. extern "C" __declspec(dllexport) LRESULT CALLBACK HookFonction(int code, WPARAM wParam, LPARAM lParam)
  2. {
  3. double euro;
  4. int n;
  5. CString decimal;
  6. CString virg(_T("," )), pt(_T("." ));
  7. LPCTSTR buffer[256];
  8. if ((wParam == VK_PAUSE) && (lParam & 0x80000000)) {
  9.  wndfocus = GetFocus();
  10.  SendMessage(wndfocus, WM_GETTEXT, (WPARAM)255, (LPARAM)buffer);
  11.  // récup les param régionaux et remplace la virgule par le point
  12.  // si elle est présente
  13.  CString *s = new CString((LPCTSTR)buffer, strlen((LPCTSTR)buffer));
  14.  if ((decimal = RecupSymboleDecimal()) == _T("" )) {
  15.   AfxMessageBox(_T("Impossible de récupérer le symbole décimal" ));
  16.  } else if (decimal == _T("," )) {
  17.   if (s->Find(decimal) != -1) {
  18.    n = s->Replace(virg, pt);
  19.   }
  20.  }
  21.  euro = atof(*s);
  22.  euro /= 6.55957;
  23.  s->Format(_T("%.2f" ), euro);
  24.  CDllDlg *dlg = new CDllDlg;
  25.  dlg->Test(s);
  26.  dlg->SetActiveWindow();
  27.  delete s;
  28.                 delete dlg;
  29. }
  30. return(CallNextHookEx(hHook, code, wParam, lParam));
  31. }


 
Il manque un ptit truc a ce hook... le paramètre 'code' n'est pas testé donc s'il est négatif tu va réafficher des fenêtres, serais-ce le problème ? [:axlrose]

n°1264581
Profil sup​primé
Posté le 12-12-2005 à 15:09:18  answer
 

vous auriez pas un bon tutoriel sur les invocations aux méthodes de déplacement des fenêtres mfc ? c'est un chantier immense ce truc, les repères ne sont jamais les mêmes, ça foire tout le temps, marre de perdre du temps avec ça...

n°1264808
Mackila
Posté le 12-12-2005 à 18:35:13  profilanswer
 

Heureusement que j'ai trouvé tout seul, pour ma question :o

n°1264813
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-12-2005 à 18:41:10  profilanswer
 

Scarmatil a écrit :


Il manque un ptit truc a ce hook... le paramètre 'code' n'est pas testé donc s'il est négatif tu va réafficher des fenêtres, serais-ce le problème ? [:axlrose]


ma foi... ça vaut le coup d'être testé [:figti]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1264814
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-12-2005 à 18:41:46  profilanswer
 

Mackila a écrit :

Heureusement que j'ai trouvé tout seul, pour ma question :o


bah cherche pas, y'a que des ptites bites ici [:mlc]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1264897
chrisbk
-
Posté le 12-12-2005 à 21:05:58  profilanswer
 

bin regarde le titre du topic [:el g]
 
nan mais si vous avez besoin d'aide pour subclasser une listbox, chu la [:petrus75]

n°1265057
Mackila
Posté le 12-12-2005 à 22:50:57  profilanswer
 

Bon ca vient cette calcu pu buguée, Harko ?  [:petrus75]  
Puis faudrait que tu sorte les sources, qu'on puisse juste modifier un peu l'interface...

n°1265188
ChristianS​_
Posté le 13-12-2005 à 09:27:55  profilanswer
 

Analyse du probleme de conversion euro avec hook :
 
1- c'est bizarre ton truc.
2- sous word (2002)  ça affiche 6 fenetres a la suite, qui sont toutes parente l'une de l'autre ( sauf la premiere bien sur)
Comme si la deuxieme s'executais dans le code de la premiere, le troisieme dans le code de la deuxieme,...
3- Pourquoi 6 fois !?  
4- si on appui sur pause deux fois, on a 12 fenetres ( facile jusque là ), mais qui sous toutes parentes ( si on ferme la premiere, ça ferme toutes les fenetres ), mais si on appui une fois, puis qu'on clique sur word ( pour avoir le focus), puis qu'on appui une deuxieme fois, on en a bien 6 de plus, mais parente de word ( du moins pour la premiere fenetre )
5- Le nombre de fenetres depend de ce qu'on tape avant de faire pause ( j'ai 6 ou 8 fenetres )
6- Dans excel, ca boucle completement ( nb de fenetre illimité )
7- Pas mal comme soft, de moins en moins utile avec l'habitude de l'euro, mais bonne idée. Peut etre la meme chose pour traduire en anglais !?

Message cité 1 fois
Message édité par ChristianS_ le 13-12-2005 à 09:30:17
n°1265339
rufo
Pas me confondre avec Lycos!
Posté le 13-12-2005 à 11:28:54  profilanswer
 

Mackila a écrit :

Heureusement que j'ai trouvé tout seul, pour ma question :o


 
t'a fait comment. Moi, j'avais été confronté un peu au même genre de pb avec les marges d'impression d'IE. Pour contourner le pb, je lisais les valeurs des paramètres concernés dans la base de registre, je les sauvegardais, je les modifais avec mes nouvelles valeurs puis je restaurais les anciennes valeurs dès que j'avais plus besoin d'IE...

n°1265745
Mackila
Posté le 13-12-2005 à 18:01:36  profilanswer
 

A WebBrowser Control instance calls GetOptionKeyPath on the host at initialization so that the host can specify a registry location containing settings that override the default Internet Explorer registry settings. If the host returns S_FALSE for this method, or if the registry key path returned to the WebBrowser Control in pchKey is NULL or empty, the WebBrowser Control reverts to the default Internet Explorer registry settings.


 
Comme ca. (j'l'ai pas encore fait au passage, j'ai eu d'autres trucs sur le feu.)

n°1265879
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-12-2005 à 20:41:47  profilanswer
 

ChristianS_ a écrit :

Analyse du probleme de conversion euro avec hook :
 
1- c'est bizarre ton truc.


je suis bien d'accord [:petrus75]
 

ChristianS_ a écrit :


2- sous word (2002)  ça affiche 6 fenetres a la suite, qui sont toutes parente l'une de l'autre ( sauf la premiere bien sur)
Comme si la deuxieme s'executais dans le code de la premiere, le troisieme dans le code de la deuxieme,...
3- Pourquoi 6 fois !?  
4- si on appui sur pause deux fois, on a 12 fenetres ( facile jusque là ), mais qui sous toutes parentes ( si on ferme la premiere, ça ferme toutes les fenetres ), mais si on appui une fois, puis qu'on clique sur word ( pour avoir le focus), puis qu'on appui une deuxieme fois, on en a bien 6 de plus, mais parente de word ( du moins pour la premiere fenetre )
5- Le nombre de fenetres depend de ce qu'on tape avant de faire pause ( j'ai 6 ou 8 fenetres )
6- Dans excel, ca boucle completement ( nb de fenetre illimité )


je vais passer ce bordel au debuggage pour voir le nombre de messages qui partent quand j'appuie sur Pause
 

ChristianS_ a écrit :


7- Pas mal comme soft, de moins en moins utile avec l'habitude de l'euro, mais bonne idée. Peut etre la meme chose pour traduire en anglais !?


merci [:kbchris]
j'ai quelques projets sur ce principe, mais c'est top secret [:kbchris]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1266689
stiffler
Lâche mon profil putain ! :o
Posté le 14-12-2005 à 19:23:26  profilanswer
 

c'est quoi ce topic de caves ? [:mlc]

n°1266714
blastman
just me !
Posté le 14-12-2005 à 20:12:30  profilanswer
 

moi j'ai le pied cassé, je peux venir :)
 
 
j'suis plus là :D


---------------
http://www.blastmanu.info
n°1266756
weblook$$
Posté le 14-12-2005 à 21:01:26  profilanswer
 

DDE power , ça c pour les vrai kids équipés de grosses baloches

n°1266790
Mackila
Posté le 14-12-2005 à 21:28:51  profilanswer
 

Harkonnen a écrit :

je suis bien d'accord [:petrus75]
 
 
je vais passer ce bordel au debuggage pour voir le nombre de messages qui partent quand j'appuie sur Pause
 
 
merci [:kbchris]
j'ai quelques projets sur ce principe, mais c'est top secret [:kbchris]


 
Ca fait un certain temps que je l'attends, ton truc taupe cikrayte :o
 
Puis ca serait cool que tu le fasse sans GUI, juste le tooltip qui apparait avec la réponse, et une icone tray avec un menu pour fermer le soft. Pas que tu sois mauvais avec les GUI, mais si. En fait c'est même pire  :D
 
edit : et puis t'es lourd de pas répondre aux MPs et de pas lancer ICQ, j'voulais mon cours de pilotage moi :o


Message édité par Mackila le 14-12-2005 à 21:29:47
n°1267155
ChristianS​_
Posté le 15-12-2005 à 12:44:43  profilanswer
 

Harkonnen ,   dans ton code du hook :
 

Code :
  1. CDllDlg *dlg = new CDllDlg;
  2.         dlg->Test(s);
  3.         dlg->SetActiveWindow();


 
essai en mettant dlg->SetParent(NULL), histoire que le parent de ta fenetre ne soit pas Word.
Peut etre que word, en recevant le message de la touche Pause le renvoi au fenetre fille et donc a ta fenetre...
C'est vraiment a tout hasard..    :??:

n°1270521
Profil sup​primé
Posté le 20-12-2005 à 10:19:17  answer
 

je redéfinis la couleur d'un CDialog dans la méthode OnCtlColor, mais je constate que la couleur de fond des static est légèrement différente de la couleur de fond du cdialog, ce qui est bizarre car je leur ai attribué la même couleur. j'ai essayé aussi de définir le fond des static en transparent mais j'obtiens le même résultat..
 
-> trouvé je ne retournais pas le bon pinceau :
 
if( nCtlColor == CTLCOLOR_STATIC )
{
 pDC->SetBkMode( TRANSPARENT );
 return m_oColorBrush;
}


Message édité par Profil supprimé le 20-12-2005 à 10:40:36
n°1272857
neg'gwada
rafix 971
Posté le 24-12-2005 à 12:41:34  profilanswer
 

salut all  :hello: en ce moment je dois me frotter aux API win32 pour mon logiciel winsplit.net, et je cherche une valeur pour rentrer dans mon appel de setwindowlong ou setwindowlongptr

Code :
  1. [DllImport("user32.dll" )]
  2.     public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);


la valeur de nindex est -16 (je crois) et je chercher la valeur de dwNewLong pour imposer à la fenetre d'etre en restauré. j'ai fait un test sur plusieur fenetres en faisant un getwindowlong lorsqu'elles sont en restauré et j'obtenais 382664704 alors avec ca ca marche mais je ne sais pas si c'est une bonne methode :/ sinon est ce qu'il y a un site qui donnerait les differentes valeurs à rentrer dans les pinvok? merci d'avance :jap:


---------------
--- WinSplit Revolution ---
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7

Aller à :
Ajouter une réponse
 

Sujets relatifs
sniffer sous windowscreer raccourci vers le bureau windows
Code de retour d'un batch windowsCompter le nombre de ligne dans un fichier texte sous Windows
utilisation du port parallele sous windows XPScript windows
Plantage sur une desallocation d'une structure sous Windows 2003Pb de free d'une variable en C sous Windows 2003 TS
Compilation de routines Fortran pour Unix sous windows[c] recevoir un flux multicast sous WINDOWS (avec visual C++)
Plus de sujets relatifs à : [C / C++] le topic des bras cassés de la progue windows


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR