Info-bulle pour le bouton

J’utilise la fonction de MSDN Créer une info-bulle pour un contrôle

HWND CreateToolTip(int toolID, HINSTANCE hInst, HWND hDlg, PTSTR pszText) { if (!toolID || !hDlg || !pszText) { return FALSE; } HWND hwndTool = GetDlgItem(hDlg, toolID); HWND hwndTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL, WS_POPUP |TTS_ALWAYSTIP | TTS_BALLOON, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hDlg, NULL, hInst, NULL); if (!hwndTool || !hwndTip) { return (HWND)NULL; } TOOLINFO toolInfo; toolInfo.cbSize = sizeof(toolInfo); toolInfo.hwnd = hDlg; toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS; toolInfo.uId = (UINT_PTR)hwndTool; toolInfo.lpszText = pszText; SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo); return hwndTip; } 

Puis, dans WndProc WM_CREATE je crée un bouton Button=CreateWindowEx( 0, L"BUTTON", L"My Button", WS_VISIBLE|WS_CHILD, 10, 10, 100, 24, hWnd, (HMENU)ID_TOOLTIP, hInst, NULL);
Enfin, créez une info-bulle tooltip_mess = CreateToolTip(ID_TOOLTIP, hInst, hWnd, (PTSTR)"Tooltip message");
Mais cela ne fonctionne pas, je ne peux pas voir mon info-bulle, où je me suis trompé?

Essayez ceci à la place:

 HWND CreateToolTip(int toolID, HWND hDlg, HINSTANCE hInst, PTSTR pszText) { if (!toolID || !hDlg || !pszText) { return NULL; } // Get the window of the tool. HWND hwndTool = GetDlgItem(hDlg, toolID); if (!hwndTool) { return NULL; } // Create the tooltip. g_hInst is the global instance handle. HWND hwndTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL, WS_POPUP |TTS_ALWAYSTIP | TTS_BALLOON, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hDlg, NULL, hInst, NULL); if (!hwndTip) { return NULL; } // Associate the tooltip with the tool. TOOLINFO toolInfo = { 0 }; toolInfo.cbSize = sizeof(toolInfo); toolInfo.hwnd = hDlg; toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS; toolInfo.uId = (UINT_PTR)hwndTool; toolInfo.lpszText = pszText; if (!SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo)) { DestroyWindow(hwndTip); return NULL; } return hwndTip; } 

 case WM_CREATE: { Button = CreateWindowEx( 0, L"BUTTON", L"My Button", WS_VISIBLE|WS_CHILD, 10, 10, 100, 24, hWnd, (HMENU)ID_TOOLTIP, hInst, NULL); tooltip_mess = CreateToolTip(ID_TOOLTIP, hWnd, hInst, L"Tooltip message"); break; } 

 if (tooltip_mess) SendMessage(tooltip_mess, TTM_ACTIVATE, TRUE, 0); 

 if (tooltip_mess) SendMessage(tooltip_mess, TTM_ACTIVATE, FALSE, 0);