Accueil > > > CRÉER UN TOOLTIP EN FORME DE BULLE SOUS WINDOWS AVEC UNE IMAGE DANS LA BULLE
CRÉER UN TOOLTIP EN FORME DE BULLE SOUS WINDOWS AVEC UNE IMAGE DANS LA BULLE
Information sur la source
Description
astuce simple pour mettre un Bitmap dans un tooltip en le personalisant fond,couleur du texte ,police du texte avec ajout d'un titre
Source
- void CreateMyTooltip (HWND hDlg,char *ToolTipTitre){
- unsigned int uid = 0;
- LPTSTR lptstr = ToolTipTitre;
- iccex.dwICC = ICC_WIN95_CLASSES|ICC_ANIMATE_CLASS|ICC_TAB_CLASSES;
- iccex.dwSize = sizeof(iccex);
- InitCommonControlsEx(&iccex);
- hwndTT = CreateWindowEx(WS_EX_TOPMOST|WS_EX_TOOLWINDOW ,TOOLTIPS_CLASS,NULL,WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP| TTS_BALLOON,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,hmain,NULL,wc.hInstance,NULL);
- HBITMAP bmp=LoadBitmap(wc.hInstance,(LPCSTR)204);
- SIZE sz;
- sz.cx=20;
- sz.cy=20;
- hlg=CreateWindowEx(0, "STATIC", NULL, WS_VISIBLE|WS_CHILD|SS_BITMAP,2, 2,sz.cx, sz.cy, hwndTT, NULL, wc.hInstance, NULL);
- SetBitmapDimensionEx(bmp,3,3,&sz);
- SendMessage(hlg, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)bmp);
- SetWindowPos(hwndTT,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
- GetClientRect (hDlg, &rect);
- ti.cbSize = sizeof(ti);
- ti.uFlags = TTF_SUBCLASS;
- ti.hwnd = hDlg;
- ti.hinst = wc.hInstance;
- ti.uId = uid;
- ti.lpszText = lptstr;
- ti.rect.left = rect.left;
- ti.rect.top = rect.top;
- ti.rect.right = rect.right;
- ti.rect.bottom = rect.bottom;
- SendMessage(hwndTT, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);
- SendMessage(hwndTT, TTM_SETTIPTEXTCOLOR, (WPARAM) RGB(0,255,0),0);
- SendMessage(hwndTT, WM_SETFONT, (WPARAM)GetStockObject(0x0E), MAKELPARAM(TRUE, 0));
- SendMessage(hwndTT, TTM_SETTITLE, (WPARAM) (int) 1, (LPARAM)(LPCTSTR) titre);
- SendMessage(hwndTT, TTM_SETTIPBKCOLOR,(WPARAM)RGB(204,51,153),0 );
- SendMessage(hwndTT, CCM_SETWINDOWTHEME,0,(LPARAM) (LPWSTR) "BUTTON");
- }
void CreateMyTooltip (HWND hDlg,char *ToolTipTitre){
unsigned int uid = 0;
LPTSTR lptstr = ToolTipTitre;
iccex.dwICC = ICC_WIN95_CLASSES|ICC_ANIMATE_CLASS|ICC_TAB_CLASSES;
iccex.dwSize = sizeof(iccex);
InitCommonControlsEx(&iccex);
hwndTT = CreateWindowEx(WS_EX_TOPMOST|WS_EX_TOOLWINDOW ,TOOLTIPS_CLASS,NULL,WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP| TTS_BALLOON,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,hmain,NULL,wc.hInstance,NULL);
HBITMAP bmp=LoadBitmap(wc.hInstance,(LPCSTR)204);
SIZE sz;
sz.cx=20;
sz.cy=20;
hlg=CreateWindowEx(0, "STATIC", NULL, WS_VISIBLE|WS_CHILD|SS_BITMAP,2, 2,sz.cx, sz.cy, hwndTT, NULL, wc.hInstance, NULL);
SetBitmapDimensionEx(bmp,3,3,&sz);
SendMessage(hlg, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)bmp);
SetWindowPos(hwndTT,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
GetClientRect (hDlg, &rect);
ti.cbSize = sizeof(ti);
ti.uFlags = TTF_SUBCLASS;
ti.hwnd = hDlg;
ti.hinst = wc.hInstance;
ti.uId = uid;
ti.lpszText = lptstr;
ti.rect.left = rect.left;
ti.rect.top = rect.top;
ti.rect.right = rect.right;
ti.rect.bottom = rect.bottom;
SendMessage(hwndTT, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);
SendMessage(hwndTT, TTM_SETTIPTEXTCOLOR, (WPARAM) RGB(0,255,0),0);
SendMessage(hwndTT, WM_SETFONT, (WPARAM)GetStockObject(0x0E), MAKELPARAM(TRUE, 0));
SendMessage(hwndTT, TTM_SETTITLE, (WPARAM) (int) 1, (LPARAM)(LPCTSTR) titre);
SendMessage(hwndTT, TTM_SETTIPBKCOLOR,(WPARAM)RGB(204,51,153),0 );
SendMessage(hwndTT, CCM_SETWINDOWTHEME,0,(LPARAM) (LPWSTR) "BUTTON");
}
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
VISUAL STUDIO TALK SHOW: EF4VISUAL STUDIO TALK SHOW: EF4 par Matthieu MEZIL
La semaine dernière, j'étais à Montréal pour y animer des conférences sur Entity Framework. J'en ai profité pour enregister un podcast Visual Studio Talk Show que vous pouvez retrouver ici ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [MIX 2010] - WINDOWS PHONE 7 EN SUPER STAR DU MICROSOFT MIX 2010 ![MIX 2010] - WINDOWS PHONE 7 EN SUPER STAR DU MICROSOFT MIX 2010 ! par redo
Me voici enfin arrivé au Microsoft Mix 2010, je dois vous avouer être arrivé un peu plus tard que d'habitude, ce qui explique que je n'ayez vu aucune info passer quant au premier keynote . certains événements sont plus importants que tout, ce qui était mo...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - LIVRE GRATUIT SUR PROGRAMMER WINDOWS PHONE 7 SERIES ![MIX 2010] - LIVRE GRATUIT SUR PROGRAMMER WINDOWS PHONE 7 SERIES ! par redo
Disponible gratuitement : (153 pages) PDF Version : http://download.microsoft.com/download/7/C/8/7C820C6F-C205-4ECF-B9F3-1505DD13F9BF/ProgWinPhonePreview.pdf XPS Version : http://download.microsoft.com/download/E/3/5/E359FC51-1CF5-47F1-9BF3-74AB09D3339B/P...
Cliquez pour lire la suite de l'article par redo SQL SERVER : ESTIMER LE NOMBRE DE LIGNES RENVOYéES PAR UNE REQUêTE AVEC SQLCLRSQL SERVER : ESTIMER LE NOMBRE DE LIGNES RENVOYéES PAR UNE REQUêTE AVEC SQLCLR par christian
Dans certains cas très particuliers il peut être intéressant de savoir le nombre de ligne que va renvoyer une requête sans exécuter cette dernière. En effet les opérations de comptage sont généralement gourmande en ressource est très difficile à optim...
Cliquez pour lire la suite de l'article par christian [WF4] ACTIVITY AVEC VUE DéTAIL MASQUéE PAR DéFAUT, VIVE WPF![WF4] ACTIVITY AVEC VUE DéTAIL MASQUéE PAR DéFAUT, VIVE WPF! par JeremyJeanson
Le code suivant est destiné à répondre à une problématique courante en Workflow : Vous avez une activité dont le designer est complexe ou dont l'affichage prend une place importante à l'écran et la possibilité Collapse/Expand ne répond pas pleinement à vo...
Cliquez pour lire la suite de l'article par JeremyJeanson
Forum
CSTRING TO CHAR*CSTRING TO CHAR* par dorras7
Cliquez pour lire la suite par dorras7 RE : EQUIVALENTRE : EQUIVALENT par belette321
Cliquez pour lire la suite par belette321 RE : ESPEAK RE : ESPEAK par salehtch
Cliquez pour lire la suite par salehtch
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|