begin process at 2012 05 29 20:23:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Problème avec les regions (redessinement)


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

Problème avec les regions (redessinement)

jeudi 20 avril 2006 à 19:40:05 | Problème avec les regions (redessinement)

waganono

Bonjour à tous

En fait je souhaite creer une "dialog" aux coins arrondis avec des boutons arrondis (bitmaps).

- Pour la dialog, je n'ai aucun problème tout s'affiche bien (combinaison CreateRoundRectRgn et SetWindowRgn).
- En revanche pour mon boutons  perso, j'ai un petit problème, en fait je combine la même technique que pour la dialog,
mon bouton s'affiche alors très bien (coins arrondis) mais si je place une autre fenêtre (un autre programme) sur ma dialog et que je l'enlève de suite alors ma région ne fonctionne plus, mon bouton est redevenu carré.

Voici les partis interessantes du code (VS 6.0) :

- Dans DilogProc :

case WM_INITDIALOG:
       // mon bouton
        hButton = CreateWindowEx(NULL,Cname,NULL,BS_OWNERDRAW | WS_CHILDWINDOW |                        WS_VISIBLE,262,56,30,30,Dlg,NULL,hInstance,NULL);
       // coins arrondis de la dialog
        region = CreateRoundRectRgn(0,0,300,160,19,19);
        SetWindowRgn((HWND)Dlg,region,true);
        return TRUE;

case WM_DRAWITEM:
        lpDrawOwnButton = (LPDRAWITEMSTRUCT)lParam;
        switch (lpDrawOwnButton->itemAction) {
            case ODA_DRAWENTIRE:
          region2 = CreateRoundRectRgn(0,0,300,160,19,19);                          //ce code ne fonctionne pas lors d'un redessinement
          SetWindowRgn(lpDrawOwnButton->ItemHwnd,region2,true);            //pourtant j'ai vérifié avec une msgbox que ce code                                                                                                                          //est bien appelé
            DrawButton(lpDrawOwnButton->hDC, lpDrawOwnButton->CtlID); //j'affiche mon bouton ici

- Procédure affichage du boutton
BOOL DrawButton(HDC P_hDC,DWORD P_szBmpName)
{
HDC hBmpDC;
HBITMAP hOldBmp, hBmp,hBmpMask;
BITMAP bm;

GetObject(hBmp, sizeof(BITMAP), (LPSTR)&BmpHdr);
hBmpDC = CreateCompatibleDC(P_hDC);
hOldBmp =(HBITMAP) SelectObject(hBmpDC, hBmp);
BitBlt(P_hDC, 0, 0, BmpHdr.bmWidth, BmpHdr.bmHeight, hBmpDC, 0, 0, SRCCOPY);
SelectObject(hBmpDC, hOldBmp);
DeleteDC(hBmpDC);
DeleteObject(hBmp);
}

Y a t il un autre message à gérer?

Si quelqu'un peut m'aider je le remercie d'avance.



Cette discussion est classée dans : problème, dialog, hdc, hbmpdc, lpdrawownbutton


Répondre à ce message

Sujets en rapport avec ce message

Problème de bitmap (je crois?) [ par vecchio56 ] J'ai un problème vraiment bizarre, j'ai mis déja des heures a trouver d'ou ca venait, mais le je craque je ne comprends pas. En fait je veux faire un problème police openGl [ par vodkapomme43 ] Bonjour,J'utilise le code suivant pour créer une police avec OPenGL:GLvoid BuildFont(GLvoid)        // Build Our Bitmap Font{ HFONT font; API Windows - Problème ChooseColor [ par banane_rose ] salut voilà j'ai une dialog et dans ma dialog j'ai un bouton censé faire apparaitre la dialog commune "choosecolor" , mais dans la structure COLORCHO Problème Combobox dans Dialog [ par banane_rose ] bonjourvoilà j'ai une dialog et je peux séléctionner tous les controles au clavier , tous sauf le combobox ...à quoi ça peut être dû ? merci<font colo Probleme avec une dialog box modale [ par solidsnake88 ] Bonjour à tous. APrès une journée passé sur le problème je me résoud à vous en faire part. J'ai une Dialog Box (DB) que je rempli de b Modal Dialog Box, Bug ! [ par Hades53 ] Bonjour à tous, je suis confronté à un petit problème, j'ai crée un dialog (style modal) mais quand j'utilise la fonction: DialogBox(), la boîte de di Problème saturation mémoire avec screenshot [ par sidhannowe ] Bonjour, Je réalise un screenshot régulièrement (ttes les 500ms) grace à un timer, le code qui génère le screenshot est le suivant:  HWND pWnd = Get Problème avec SelectObject() [ par aujeanfr ] G un problème avec la fonction SelectObject() qui me revoie toujours NULL... je ne comprends pas pourquoi.voici mon code (MFC) :void traitement_bmp(CB API Windows - Problème Dialog [ par banane_rose ] salut, dans mon template de ma dialog quand je rajoute la ligne pour les styles STYLE DS_MODALFRAME | WS_POPUP ça me met [Res Problème pour mettre une Dialog Modale au premier plan [ par ZMJUVENTINO ] Salut, je travaille sur Visual C++ 6Je voudrais à partir de mon application afficher une CDialog modale et qu'elle s'affiche absolument au premier pla


Nos sponsors


Sondage...

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 : 0,156 sec (4)

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