typedef struct tagTOOLINFO{
    UINT      cbSize; 
    UINT      uFlags; 
    HWND      hwnd; 
    UINT      uId; 
    RECT      rect; 
    HINSTANCE hinst; 
    LPTSTR    lpszText; 
} TOOLINFO, NEAR *PTOOLINFO, FAR *LPTOOLINFO;
cbSize には、この構造体のサイズを指定します| 定数 | 解説 | 
|---|---|
| TTF_CENTERTIP | uId メンバで指定されたツールのした中央に ツールヒントウィンドウを表示する | 
| TTF_IDISHWND | uId メンバは、ツールのウィンドウハンドルである このフラグが設定されていない場合、uId はツールの識別子である | 
| TTF_RTLREADING | テキストを右から左に表示する(ヘブライ語、またはアラビア語) | 
| TTF_SUBCLASS | ツールのウィンドウをサブクラス化し ツールヒントコントロールにマウスメッセージを送信する これが指定されていない場合、TTM_RELAYEVENT メッセージを ツールヒントコントロールに送信しなければならない | 
#include <windows.h>
#include <commctrl.h>
#define TITLE TEXT("Kitty on your lap")
LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) {
	static HWND hTool;
	static TOOLINFO ti;
	switch (msg) {
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	case WM_CREATE:
		InitCommonControls();
		hTool = CreateWindowEx( 0 , TOOLTIPS_CLASS ,
			NULL , TTS_ALWAYSTIP ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			hWnd , NULL , ((LPCREATESTRUCT)(lp))->hInstance ,
			NULL
		);
		GetClientRect(hWnd , &ti.rect);
		ti.cbSize = sizeof (TOOLINFO);
		ti.uFlags = TTF_SUBCLASS;
		ti.hwnd = hWnd;
		ti.lpszText = TITLE;
		SendMessage(hTool , TTM_ADDTOOL , 0 , (LPARAM)&ti);
		return 0;
	}
	return DefWindowProc(hWnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
			PSTR lpCmdLine , int nCmdShow ) {
	HWND hWnd;
	MSG msg;
	WNDCLASS winc;
	winc.style		= CS_HREDRAW | CS_VREDRAW;
	winc.lpfnWndProc	= WndProc;
	winc.cbClsExtra	= winc.cbWndExtra	= 0;
	winc.hInstance		= hInstance;
	winc.hIcon		= LoadIcon(NULL , IDI_APPLICATION);
	winc.hCursor		= LoadCursor(NULL , IDC_ARROW);
	winc.hbrBackground	= (HBRUSH)GetStockObject(WHITE_BRUSH);
	winc.lpszMenuName	= NULL;
	winc.lpszClassName	= TEXT("KITTY");
	if (!RegisterClass(&winc)) return -1;
	hWnd = CreateWindow(
			TEXT("KITTY") , TITLE ,
			WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			NULL , NULL , hInstance , NULL
	);
	if (hWnd == NULL) return -1;
	while(GetMessage(&msg , NULL , 0 , 0)) {
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
}

#include <windows.h>
#include <commctrl.h>
#define TITLE TEXT("Kitty on your lap")
LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) {
	static HWND hTool;
	static TOOLINFO ti;
	switch (msg) {
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	case WM_CREATE:
		InitCommonControls();
		hTool = CreateWindowEx( 0 , TOOLTIPS_CLASS ,
			NULL , TTS_ALWAYSTIP ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			hWnd , NULL , ((LPCREATESTRUCT)(lp))->hInstance ,
			NULL
		);
		GetClientRect(hWnd , &ti.rect);
		ti.cbSize = sizeof (TOOLINFO);
		ti.uFlags = TTF_SUBCLASS;
		ti.hwnd = hWnd;
		ti.uId = 1;
		ti.lpszText = TITLE;
		SendMessage(hTool , TTM_ADDTOOL , 0 , (LPARAM)&ti);
		return 0;
	case WM_SIZE:
		GetClientRect(hWnd , &ti.rect);
		SendMessage(hTool , TTM_NEWTOOLRECT , 0 , (LPARAM)&ti);
		return 0;
	}
	return DefWindowProc(hWnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
			PSTR lpCmdLine , int nCmdShow ) {
	HWND hWnd;
	MSG msg;
	WNDCLASS winc;
	winc.style		= CS_HREDRAW | CS_VREDRAW;
	winc.lpfnWndProc	= WndProc;
	winc.cbClsExtra	= winc.cbWndExtra	= 0;
	winc.hInstance		= hInstance;
	winc.hIcon		= LoadIcon(NULL , IDI_APPLICATION);
	winc.hCursor		= LoadCursor(NULL , IDC_ARROW);
	winc.hbrBackground	= (HBRUSH)GetStockObject(WHITE_BRUSH);
	winc.lpszMenuName	= NULL;
	winc.lpszClassName	= TEXT("KITTY");
	if (!RegisterClass(&winc)) return -1;
	hWnd = CreateWindow(
			TEXT("KITTY") , TITLE ,
			WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			NULL , NULL , hInstance , NULL
	);
	if (hWnd == NULL) return -1;
	while(GetMessage(&msg , NULL , 0 , 0)) {
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
}
先ほどのプログラムを改良したものです