begin process at 2012 05 30 16:14:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Region Bitmap


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Region Bitmap

dimanche 16 janvier 2005 à 15:24:37 | Region Bitmap

DarkBoss

   Salut,
Voilà, je désirerais créer une application skinnable, mais le probleme c' est que je n' utilise pas ces *** de dialogbox, je fais tout en code et sans class.
 Toute la doc que j' ai trouver là dessus était faite a partir d' applications ayant des dialog box comme fenetre.
Merci d' avance

Tchuss

DarkBoss

dimanche 16 janvier 2005 à 16:56:37 | Re : Region Bitmap

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

Et quel est ton problème au juste ?

Si tu crée une fenêtre, avec MFC ou non, tu peut récupèrer son handle de fenêtre.

Une fois ta région crée, tu peux l'appliquer à ta fenêtre grâce à ce handle.

DarK Sidious

[Administrateur et responsable VB/API du site 
ProgOtoP]
dimanche 16 janvier 2005 à 17:18:55 | Re : Region Bitmap

DarkBoss

merci Darksidious de ta reponse, j' ai trouver comment faire mais en fait ce que je voulais dire c' est:
que il n' y a que des exemples avec mfc, et cela est très déroutant, car je n' ai pas l' habitude de travailler "graphiquement"!

je poste la source que j' ai fait grace a  la fonction d' anthraxx(http://www.cppfrance.com/code.aspx?ID=10721)
le fichier bmptorgn contient la fonction d' anthraxx
et resource.h contien #define ID_BUTTON 100
il faut créer un fichier c:\skin.bmp pour le skin la couleur transparente est le noir,

#include "resource.h"
#include <math.h>
#include "bmpTOrgn.cpp"


HBRUSH hbr;
char szappname[] = "Rondeur";

LRESULT CALLBACK AppWndProc(HWND hwnd, UINT mssg, WPARAM wParam, LPARAM lParam)
{
static HBITMAP hBitmap ;
HINSTANCE hInstance ;
HDC hDC;
HDC hdcMem ;
PAINTSTRUCT paintst;

  switch(mssg) {
    case WM_CREATE:

         hInstance = ((LPCREATESTRUCT) lParam)->hInstance ;
         hBitmap = (HBITMAP)LoadImage(hInstance,"c:\\skin.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_DEFAULTSIZE);
         if (!hBitmap)MessageBox (NULL, "Erreur", "erreur", MB_OK);
         SetWindowRgn(hwnd,BmpToRgn(hBitmap, 0), FALSE);
         return 0 ;
    case WM_PAINT:
         hDC=BeginPaint(hwnd,&paintst);
         if (!hBitmap) {
            MessageBox (NULL, "Erreur 2: Impossible de redessiner la fenetre", "erreur", MB_OK);
         }
         else {
              hdcMem = CreateCompatibleDC(hDC);
              SelectObject (hdcMem, hBitmap) ;
              BitBlt (hDC, 0, 0, 800, 600, hdcMem, 0, 0, SRCCOPY) ;
              DeleteDC (hdcMem) ;
         }
         EndPaint(hwnd,&paintst);
         return 0;
    case WM_KILLFOCUS:
         return 0;
    case WM_KEYDOWN:
         if(wParam == VK_ESCAPE) PostMessage(hwnd, WM_CLOSE, 0, 0l);
         break;
    case WM_DESTROY:
         PostQuitMessage(0);
  }
  return DefWindowProc(hwnd, mssg, wParam, lParam);
}

int WINAPI InitInstance(HINSTANCE hinst)
{
      HBITMAP hBitmap;
    //GetStockObject(NULL_BRUSH) pour background.
  WNDCLASS     wndclass;
  hbr = (HBRUSH) GetStockObject (NULL_BRUSH);
  memset(&wndclass, 0, sizeof(WNDCLASS));
  wndclass.style         = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
  wndclass.lpfnWndProc   = AppWndProc;
  wndclass.hInstance     = hinst;
  wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW);
  wndclass.hbrBackground = hbr;
  wndclass.lpszClassName = szappname;
  return RegisterClass(&wndclass);
}

int WINAPI WinMain(HINSTANCE hinst, HINSTANCE, PSTR, int)
{
  MSG msg;
  if(!InitInstance(hinst)) return 0;

  HWND hwnd = CreateWindow(szappname, 0,
                        WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS,
                        0, 0, 800, 600, 0, 0, hinst, 0);
      HWND cmdhWnd = CreateWindowEx(0, "BUTTON", "", /*WS_VISIBLE*/|WS_CHILD|BS_PUSHBUTTON|BS_NOTIFY|BS_TEXT,508, 48, 27, 21, hwnd, (HMENU)ID_BUTTON, hinst, NULL);// pour cliquer sur la croix et que ca ferme
  if(!hwnd) return 0;
  ShowWindow(hwnd, SW_SHOW); 
  UpdateWindow(hwnd);
  SetWindowText(cmdhWnd, "x");
  // Met à jour le bouton
  UpdateWindow(cmdhWnd);
  // Donne le focus au bouton
  //SetFocus(cmdhWnd);
  while(GetMessage(&msg, NULL, 0, 0)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
  return 0;
}


DarkBoss

dimanche 16 janvier 2005 à 17:23:15 | Re : Region Bitmap

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Ben disont que les MFC permettent de développer plus rapidement, et évite de devoir taper beaucoup de code pour faire une application windows "classique". Ca mâche beaucoup le travail, bien que cela crée des dépendances, et ralentisse le code (perso, je programme sous VB, et un code VB optimisé est quasiment aussi rapide lorsqu'il est compilé qu'une application faite en C++). Pourquoi perdre autant de temps pour ne gagner au final que quelques ms sur certains traîtements. C'est pour cette raison que je pense passer à C# plutôt que de persevérer en C++ !

DarK Sidious

[Administrateur et responsable VB/API du site 
ProgOtoP]


Cette discussion est classée dans : bitmap, region


Répondre à ce message

Sujets en rapport avec ce message

inserer un bitmap [ par zekoko ] voila,j'aimerais savoir comment inserer un bitmap(320*200)pour faire un fond et plus petit en guise de spriteet jaimerais aussi savoir comment rendre Au bord du suicide à cause des GDI et d'une Listbox [ par mzhunix ] Bonjour à tous !J'ai un petit probleme concernant les gdi et l'affichage d'un bitmap sur une listbox. Le tous cree avec des api's et en langage C.En f Pb avec CBitmapButton [ par punx120 ] Salutj'ai un problème avec CBitmapButton, je veux créer un bouton avec un bitmap je fais comme ceci mais ça ne marhce pas (j'ai visual c++ 6.0): dans CComboBox + Bitmap [ par pelloq1 ] Bonjour,Est il possible de créer une ccombobox avec des images bitmaps au lieu des textes habituels.MErci de de votre aide et exemples.VS 6 bitmap et ressources [ par Xs ] salut !ben si le titre n'en dit pas assez : comment inserer des bitmap dans des ressources ? (sous VC++ 6)j'ai bien "dessiné" son emplacement, mais je rafraischissement [ par hotrod1 ] Salut, je fait se déplacer des fenetres (bitmap) sur ma boite de dialogue, mais quand ils se croisent ca ne rafraichit pas.Je cherche plusieurs trucs Bitmap VC++ [ par zobe ] Bjr, voila mon ptit problème :Je réalise une interface windows avec VC++ (sans MFC) et j'aurai voulu savoir comment on fait pour afficher/ cahcer un B [allegro]Pb de base [ par kjus ] Valla g installé la lib pour vc++6seulement voila mon premier code allegro :et pas moyen d'afficher quoi que ce soit (g aussi essayé de faire buffer=l Mettre une bitmap sur un bouton (MFC,VC++) [ par JMGR ] Comment peut - on mettre une image sur un bouton ?Mon code qui ne fonctionne pas :HBITMAP bimp= LoadBitmap(NULL,"bitmaps\\un.bmp");m_x0y0.SetBitmap(bi bitmap independante du peripherique [ par Cookie ] SltAlors voila je cherche comment on peut utiliser la table de couleur d'une bitmap Independante du peripherique... enfin je cherche simplement comme


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,560 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales