C++气泡

来源:互联网 发布:社交网络英文翻译 编辑:程序博客网 时间:2024/04/18 14:22
void __fastcall ShowBalloonTip(TWinControl *Control, int  Icon, 
char *Title, char *Text)
{
    HWND hBalloonTip;
    HWND hPareWnd;
    TOOLINFO ti;
int w = 0;
int h =0;
int Left = 0;
int Top  = 0;


    hPareWnd    = Control->Handle;
    hBalloonTip = CreateWindow(TOOLTIPS_CLASS, NULL, 
WS_POPUP | TTS_NOPREFIX | TTS_BALLOON | TTS_ALWAYSTIP , 
0, 0, 0, 0, 
hPareWnd, 0, HInstance, NULL);


    if( hBalloonTip )
    {
        ti.cbSize = sizeof(ti);


/*
*指定位置上显示气泡提示
*/
ti.uFlags = TTF_TRACK /*| TTF_ABSOLUTE*/;
        ti.hwnd = hPareWnd;
        ti.lpszText = Text;
        
SetWindowPos(hBalloonTip, HWND_TOPMOST, 
0,0,0,0,
SWP_NOACTIVATE  | SWP_NOMOVE | SWP_NOSIZE );


//set color
//        SendMessage(hWndTip, TTM_SETTIPBKCOLOR, BackCL, 0);
//        SendMessage(hWndTip, TTM_SETTIPTEXTCOLOR, TextCL, 0);


        SendMessage(hBalloonTip, TTM_ADDTOOL, WPARAM(1), LPARAM(&ti));
        SendMessage(hBalloonTip, TTM_SETTITLE, WPARAM(Icon), LPARAM(Title));


// 定义气泡位置,粘附在指定控件旁边
GetWindowRect(hPareWnd, &ti.rect);
Left = ti.rect.left;
Top =  ti.rect.top;
w = ti.rect.right - ti.rect.left;
h = ti.rect.bottom - ti.rect.top;
SendMessage(hBalloonTip,
TTM_TRACKPOSITION, WPARAM(0), 
MAKELONG(w  + Left,h  + Top)); 
//显示气泡
SendMessage(hBalloonTip, 
TTM_TRACKACTIVATE, 
WPARAM(True), LPARAM(&ti));  


//注意销毁窗口
    }
}


ShowBalloonTip(edt1, TTI_INFO, "标题","我是一个气泡");
0 0
原创粉丝点击