INT_PTR DlgAbout::TabInfo::dlg_proc(UINT message, WPARAM wParam, LPARAM lParam) { static HWND TT_URL[1]; switch(message) { case WM_INITDIALOG: assert(sizeof(DlgAbout::TabInfo::URL_GITHUB) <= L_MAX_URL_LENGTH); LITEM item; item.mask = LIF_ITEMINDEX | LIF_URL; item.iLink = 0; wcscpy(item.szUrl, URL_GITHUB); SendDlgItemMessage(this->window, LnkAboutGithub, LM_SETITEM, NULL, reinterpret_cast<LPARAM>(&item)); TT_URL[0] = CreateTooltip(GetDlgItem(this->window, LnkAboutGithub), DlgAbout::TabInfo::URL_GITHUB, false, this->instance); SetDlgItemText(this->window, StVersionFireFly, FireFly::VERSION); break; case WM_NOTIFY: { const NMHDR* nmHdr = reinterpret_cast<const NMHDR*>(lParam); assert(nmHdr); switch(nmHdr->code) { case NM_CLICK: // mouse case NM_RETURN: // keyboard { const NMLINK* nmLink = reinterpret_cast<const NMLINK*>(nmHdr); LITEM item = nmLink->item; assert((nmHdr->hwndFrom == GetDlgItem(this->window, LnkAboutAS)) || (nmHdr->hwndFrom == GetDlgItem(this->window, LnkAboutSC))); //assert(item.iLink == 0); ShellExecute(NULL, L"open", item.szUrl, NULL, NULL, SW_SHOW); break; } } } break; case WM_DESTROY: for(int i = 0; i < _countof(TT_URL); i++) { DestroyWindow(TT_URL[i]); } break; default: return false; } return true; }
void EmoticonsSelectionLayout::CreateEmoticonToolTip(Emoticon *e, RECT fr) { Buffer<TCHAR> tt; if (e->description[0] != _T('\0')) { tt += _T(" "); tt += e->description; tt.translate(); tt += _T(" "); } for(int k = 0; k < e->texts.getCount(); k++) { tt += _T(" "); tt += e->texts[k]; tt += _T(" "); } tt.pack(); e->tt = CreateTooltip(hwnd, fr, tt.str); }
// Build the user interface BOOL BuildUI() { //-------------// // Main Window // //-------------// WNDCLASS wc; wc.style = CS_VREDRAW | CS_HREDRAW; wc.lpfnWndProc = ShideWin_WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hThisInstance; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wc.lpszMenuName = NULL; wc.lpszClassName = "ShideWin"; RegisterClass(&wc); hMainWin = CreateWindow( "ShideWin", // Class Name "ShideWin", // Title WS_OVERLAPPEDWINDOW, // Style CW_USEDEFAULT, CW_USEDEFAULT, // Position 300, 354, // Size NULL, // Parent NULL, // Use class menu hThisInstance, // Instance 0); // No special parameters if (!hMainWin) return FALSE; //---------// // Listbox // //---------// hListbox = CreateWindow( "LISTBOX", "lstHandle", WS_CHILD | LBS_HASSTRINGS | LBS_MULTIPLESEL | LBS_STANDARD | LBS_NOINTEGRALHEIGHT, 0, 0, 150, 300, hMainWin, NULL, hThisInstance, 0); if (!hListbox) return FALSE; wpOrigListboxProc = (WNDPROC) SetWindowLong(hListbox, GWL_WNDPROC, (LONG) Listbox_WndProc); /* HFONT hLstFont = CreateFont(13, 0, 0, 0, 0, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DONTCARE, "Tahoma"); SendMessage(hListbox, WM_SETFONT, (UINT)hLstFont, 1); */ ShowWindow(hListbox, SW_NORMAL); ShowWindow(hMainWin, SW_NORMAL); CreateTooltip(); return TRUE; }