Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-11-2006, 18:25   #1
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
[RISOLTO] (winApi) Controllo BITMAP

Se io in un file risorsa (.rc) scrivo:

IDI_BITMAP1_LOGIN BITMAP "img1_login.bmp"

E' esetta la sintassi di come scrivo questo controllo??...no perchè mi continua a dare errore di sintassi e sono fermo da due giorni ...

Edit:
Premetto che sono arrivato a scrivere così da questo controllo:
IDC_MYICON ICON "ciao.ico"
e la posto di ICON ho messo BITMAP

Ultima modifica di Gino+89+ : 17-11-2006 alle 19:21.
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
Old 15-11-2006, 18:36   #2
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
Corretto...avevo scritto l'istruzione dentro ad un dialogo...
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 15:48   #3
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
Altra domanda...

Ho creato un controllo static vuoto per inserirci un bitmap:
Codice:
   CONTROL "",IDC_STATIC1_LOGIN,"STATIC",SS_BITMAP | SS_CENTERIMAGE | WS_VISIBLE,40,50,80,98
E poi la bitmap:
Codice:
   IDI_BITMAP1_LOGIN BITMAP "img1_login.bmp"
Ma come faccio ad inserircela ...volevo inviare il mess. STM_SETIMAGE con SendMessage() allo static...ho provato in diversi modi ma non ci sono riuscito...sapete aiutarmi??...ho fatto errori?
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 16:14   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Gino+89+
Ho creato un controllo static vuoto per inserirci un bitmap:
Codice:
   CONTROL "",IDC_STATIC1_LOGIN,"STATIC",SS_BITMAP | SS_CENTERIMAGE | WS_VISIBLE,40,50,80,98
E poi la bitmap:
Codice:
   IDI_BITMAP1_LOGIN BITMAP "img1_login.bmp"
Ma come faccio ad inserircela ...volevo inviare il mess. STM_SETIMAGE con SendMessage() allo static...ho provato in diversi modi ma non ci sono riuscito...sapete aiutarmi??...ho fatto errori?
Il messaggio STM_SETIMAGE va sicuramente bene ma devi specificare in wParam IMAGE_BITMAP e in lParam devi avere un handle di bitmap (HBITMAP) cioè una immagine già caricata.

Ma se vuoi si può fare già a livello di risorsa. Il primo parametro di CONTROL (che adesso è ""), deve contenere l'ID della risorsa bitmap. Esempio:

CONTROL 103,IDC_STATIC_1,"Static",SS_BITMAP .....

Se stai usando VC++, si può fare facilmente dall'editor delle risorse.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 16:54   #5
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
Allora, ho fatto in questo modo ma mi piazza come immagine un quadrato completamente nero che non è la bitmap che dico io:

Ti posto il codice "completo":

Pezzo di risorsa:
Codice:
IDD_LOGIN DIALOG 150, 150, 115, 190
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU 
CAPTION "LN Chat - Login" 
FONT 10, "MS Sans Serif" 
BEGIN 
       LTEXT "Nickname",IDC_TEXT1_LOGIN,18,50,40,10
       EDITTEXT IDC_EDIT1_LOGIN,18,60,80,11
	   LTEXT "Password",IDC_TEXT2_LOGIN,18,73,40,10
	   EDITTEXT IDC_EDIT2_LOGIN,18,83,80,11,ES_PASSWORD
	   PUSHBUTTON  "Enter",IDC_BUTTON1_LOGIN,31,97,20,9,BN_CLICKED 
	   PUSHBUTTON  "Exit",IDC_BUTTON2_LOGIN,63,97,20,9,BN_CLICKED
	   PUSHBUTTON  "Register",IDC_BUTTON3_LOGIN,43,115,30,9,BN_CLICKED
       CONTROL 110,IDC_STATIC1_LOGIN,"STATIC",SS_BITMAP | SS_CENTERIMAGE | WS_VISIBLE,10,50,80,100
	
END

IDI_BITMAP1_LOGIN BITMAP "img2_login.bmp"
Pezzo di file in cui definisco gli ID interessati:
Codice:
#define IDC_STATIC1_LOGIN   109
#define IDI_BITMAP1_LOGIN   110
Pezzo di dialogo:

Codice:
BOOL CALLBACK dlgProcLogin(HWND hwndDlg,UINT dlgMsg,WPARAM wParam,LPARAM lParam) 
{ 

  	 switch(dlgMsg) 
         {
	  	case WM_INITDIALOG:
                {
                HWND hwndControl=GetDlgItem(hwndDlg,IDC_STATIC1_LOGIN);
                      SendMessage(hwndControl,STM_SETIMAGE,IMAGE_BITMAP,110);
	        }
	        break;
		
		case WM_CLOSE: 
                       EndDialog(hwndDlg,0); 
                       break;
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 17:01   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Gino+89+
Pezzo di risorsa:
Codice:
CONTROL 110,IDC_STATIC1_LOGIN,"STATIC",SS_BITMAP | SS_CENTERIMAGE | WS_VISIBLE,10,50,80,100
	
IDI_BITMAP1_LOGIN BITMAP "img2_login.bmp"
Mi sembra ok.

Quote:
Originariamente inviato da Gino+89+
Pezzo di file in cui definisco gli ID interessati:
Codice:
#define IDC_STATIC1_LOGIN   109
#define IDI_BITMAP1_LOGIN   110
Ok anche qui.

Quote:
Originariamente inviato da Gino+89+
SendMessage(hwndControl,STM_SETIMAGE,IMAGE_BITMAP,110);
No, questo no. Come ho detto prima con STM_SETIMAGE devi passare in lParam un handle cioè un HBITMAP caricato con una funzione tipo LoadBitmap(), per esempio.

Comunque se già lo imposti dalla risorsa, perché impostarlo programmaticamente???
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 17:06   #7
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
Quote:
Originariamente inviato da andbin
No, questo no. Come ho detto prima con STM_SETIMAGE devi passare in lParam un handle cioè un HBITMAP caricato con una funzione tipo LoadBitmap(), per esempio.
Purtroppo (date le mie scarse conoscenze) non ho capito che intendi...al posto di 110 che ci va?..il ritorno di una funzione quale LoadBitmap()?...poi hai detto:
Quote:
Comunque se già lo imposti dalla risorsa, perché impostarlo programmaticamente???
Invece quì non ho capito del tutto

Nel mio esempio che cosa devo passargli per ultimo parametro?
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 17:11   #8
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Gino+89+
Purtroppo (date le mie scarse conoscenze) non ho capito che intendi...al posto di 110 che ci va?..il ritorno di una funzione quale LoadBitmap()?...poi hai detto:

Invece quì non ho capito del tutto

Nel mio esempio che cosa devo passargli per ultimo parametro?
Se tu metti quel 110 come primo parametro di CONTROL nella risorsa, quando la dialog viene caricata dal sistema, carica ed imposta in automatico la bitmap nel controllo. Tu non dovresti fare nulla, se non vuoi poi successivamente cambiarla da programma!
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 17:20   #9
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
Quote:
Originariamente inviato da andbin
Se tu metti quel 110 come primo parametro di CONTROL nella risorsa, quando la dialog viene caricata dal sistema, carica ed imposta in automatico la bitmap nel controllo. Tu non dovresti fare nulla, se non vuoi poi successivamente cambiarla da programma!
Ma infatti io ho messo 110 come primo parametro di CONTROL
L'unica cosa che non ho capito e come correggere il SendMessage()...
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 17:36   #10
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Gino+89+
L'unica cosa che non ho capito e come correggere il SendMessage()...
Non serve!!! Fa già tutto il sistema. Mettendo quel 110 nel CONTROL, è il sistema che sa quale bitmap caricare subito!! Senza che tu debba fare qualcosa nel sorgente.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 17:42   #11
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
Quote:
Originariamente inviato da andbin
Non serve!!! Fa già tutto il sistema. Mettendo quel 110 nel CONTROL, è il sistema che sa quale bitmap caricare subito!! Senza che tu debba fare qualcosa nel sorgente.
E perchè allora mi visualizzza questo??:


Come vedi viene fuori una cosa "molto oscena", e non mi carica la bitmap "img2_login.bmp" che dico io

Ultima modifica di Gino+89+ : 16-11-2006 alle 17:46.
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 17:52   #12
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Gino+89+
E perchè allora mi visualizzza questo??:
Quella SendMessage in cui invii STM_SETIMAGE con 110 devi toglierla!!!

Continui ad inviare un 110 che non è un handle. Quindi chissà cosa fa il controllo .... probabilmente vede che non è un handle e si "resetta" o qualcosa del genere!
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 17:59   #13
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
Questo è il risultato se la tolgo:



Come se non ci fosse nulla, basta mi arrendo
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 18:05   #14
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Gino+89+
Come se non ci fosse nulla, basta mi arrendo
Da quello che vedo, usi Dev-C++. Quello che non so è se il Resource Compiler del Dev-C++ accetta la specifica della bitmap in quel modo (VC++ non ha problemi).

Verifica se hai degli errori o warning nella compilazione delle risorse.
Inoltre, il file di include che contiene le define degli ID è correttamente incluso dal file .rc??
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2006, 18:12   #15
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
Quote:
Originariamente inviato da andbin
Da quello che vedo, usi Dev-C++. Quello che non so è se il Resource Compiler del Dev-C++ accetta la specifica della bitmap in quel modo (VC++ non ha problemi).

Verifica se hai degli errori o warning nella compilazione delle risorse.
Inoltre, il file di include che contiene le define degli ID è correttamente incluso dal file .rc??
Si per questo tutto corretto (ne errori ne warning), ma mi è venuto un dilemma...se io dovessi avere più bitmap nel file risorsa lui come fa a scegliere quale mettere?

Difatti se osservi il codice dei post iniziali, ho messo il 110 sia come primo parametro del CONTROL che come ID della bitmap (IDI_BITMAP1_LOGIN)...appunto perchè non riesco a capire come possa scegliere...
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2006, 19:20   #16
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
Risolto caricando la bitmap:

Codice:
case WM_INITDIALOG:
        {      
        HWND hwndControl=GetDlgItem(hwndDlg,IDC_STATIC1_LOGIN);
		HBITMAP hwndBitMap=LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_BITMAP1_LOGIN));
		
		
              SendMessage(hwndControl,STM_SETIMAGE,IMAGE_BITMAP,hwndBitMap);
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2006, 20:53   #17
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Gino+89+
Risolto caricando la bitmap:
Ok, però alla fine dovresti fare una free della bitmap usando DeleteObject()!!
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2006, 21:08   #18
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
Quote:
Originariamente inviato da andbin
Ok, però alla fine dovresti fare una free della bitmap usando DeleteObject()!!
Quale sono gli effetti se non uso quest'ultima funzione? (e quindi cosa serve usarla?)...no perchè anche senza nelle finestre successive del programma non sembra fare nulla di anomalo...
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Rubati 6 pallet di hardware NVIDIA da 11...
Addio ai limiti del silicio? Ecco il dia...
Windows 11 27H2 sarà un 'cambio completo...
Hai mai notato che l'iPhone sbaglia semp...
Raffreddamento a liquido e schermo perso...
TSMC valuta la produzione di 3D DRAM su ...
Il Cybertruck ha i giorni contati? Musk ...
Meta porta la voce su Muse, e a sponsori...
Perché il disco principale di Win...
Quanta acqua consuma l'IA? Da cinque goc...
Airbnb lancerà un assistente AI per pian...
25 miliardi sul tavolo: i sauditi voglio...
TV Haier QLED da 65'' a meno di 400€ su ...
Il meglio degli sconti Amazon del weeken...
Il rumore degli aerei in sottofondo può ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v