Newsgroup: it.comp.programmare.win32
Titolo: [VC++] XP Style:programmazione con API

#include <windows.h>
int totClick;
BOOL CALLBACK newWndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
     totClick=0;
     DialogBoxParam(0,"MIODIALOGO",0,newWndProc,0);
     return 0;
}
BOOL CALLBACK newWndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM
lParam)
{
     char *prova;
     switch (message)
     {
     case WM_CLOSE :
          EndDialog(hwnd,0) ;
          return 0 ;
     case WM_COMMAND :
   totClick++;
   //_itoa(2,prova,10);
   if (LOWORD(wParam)==100){
     prova=TEXT("ciao");
     SendMessage(GetDlgItem(hwnd,101),WM_SETTEXT,0,(LPARAM)prova);
     return 0;
   }
  }
     return 0;
}
Ho scritto questo semplice programma ! Ora vorrei che i bottoni e tutto il
resto siano XP-Like !
Pero come inserisco il manifest nella directory dell'exe il programma non
parte piu ! Come mai ?

 parte piu ! Come mai ?
Non so che manifest hai usato ma il manifest standard e' tipicamente 
fatto cosi':
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
     version="1.0.0.0"
     processorArchitecture="X86"
     name="Nome"
     type="win32"
/>
<description>Descrizione</description>
<dependency>
     <dependentAssembly>
         <assemblyIdentity
             type="win32"
             name="Microsoft.Windows.Common-Controls"
             version="6.0.0.0"
             processorArchitecture="X86"
             publicKeyToken="6595b64144ccf1df"
             language="*"
         />
     </dependentAssembly>
</dependency>
</assembly>
E deve essere denominato "<nome file exe>.manifest".

 ha scritto nel messaggio
news:c6t2s8$6dr$1...@newsreader.mailgate.org...

si quella ma il programma non parte !

 si quella ma il programma non parte !
Alt ! Non avevo visto bene il tuo sorgente. Okkio che il primo parametro 
della DialogBoxParam deve essere l'HINSTANCE della applicazione, non 
puoi metterlo a 0 !!! Ma ti funziona (senza il manifest) ???
Poi potresti usare solo DialogBox se non usi il parametro custom.

 ha scritto nel messaggio
news:c6t57n$9pr$1...@newsreader.mailgate.org...

Si senza il manifest mi funziona ma se metto il manifest il programma non si
carica ?!!!

 ha scritto nel messaggio
news:PUokc.122543$hc5.5...@news3.tin.it...

prima di aprire la dialog metti un InitCommonControls();
devi anche includere <commctrl.h> e linkare comctl32.lib
--
Pela

 ha scritto nel messaggio
news:8Bpkc.122755$hc5.5...@news3.tin.it...

evvai funziona !!!!

 devi anche includere <commctrl.h> e linkare comctl32.lib
Non dovrebbe servire. Io ho fatto una piccola utility che non utilizza e 
non linka affatto comctl32.lib (nella sezione di import dell'eseguibile 
non e' elencata la comctl32.dll) eppure basta metterci il manifest 
perche' abbia lo stile XP.
E poi scusa, tutte quelle applicazioni "legacy" gia' fatte e compilate, 
dovrebbero rifarle per linkare anche la comctl ???

 perche' abbia lo stile XP.
Oooops, ho detto una mezza cavolata ... effettivamente la mia utility 
non linka la comctl32.lib. Linka pero' la advapi32.lib. Ma la 
advapi32.dll richiede la wintrust.dll che a sua volta richiede la 
comctl32.dll che quindi viene caricata in memoria.

 compilate, dovrebbero rifarle per linkare anche la comctl ???
sì. La scelta deve essere esplicita, perchè i Common Controls 6 possono 
rompere un sacco di programmi esistenti - e lo fanno. Il manifest altro 
non è che un file di configurazione che specifica che versione di certe 
librerie il programma si aspetta - quindi i programmi che usano già una 
vecchia versione dei Common Controls possono essere aggiornati a forza, 
ma non sempre gradiscono
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.2.1. C, C++ and ASM developers
                               and beta testers are welcome!

 ma non sempre gradiscono
Io ho sempre visto porblemi di controlli mal ridisegnati e basta. Che altri
problemi possono esserci?
-- 
Marco Barisione
http://hotkeybind.sf.net/
http://marcobari.altervista.org/

Domanda !!
Ho usato questa chiamata per creare un edit
   iStatic =
CreateWindow("edit","Test",WS_CHILD|WS_VISIBLE|WS_BORDER,10,10,100,25,hWnd,N
ULL,NULL,NULL);
ed un'altra simile per un button ! Ora lo stile windows xp mi appare sul
bottone ma non sulla edit , perche ,devo applicare uno style particolare ? E
poi perche il font mi appare diverso da quello di default ?