Windows 下一切皆視窗,超連結也是視窗。效果:滑鼠懸停時字體由綠變紅、滑鼠變手型,點擊啟動預設瀏覽器開啟指定網頁。
button 類別,指定 BS_OWNERDRAW 風格實現無明顯按壓痕跡、懸停不改變形狀的按鈕。WM_SETCURSOR),實現懸停時改變按鈕文字顏色與滑鼠形狀。WM_COMMAND),呼叫 ShellExecute 開啟網頁。m_hInfoButton = CreateWindowEx(WS_EX_NOACTIVATE,
TEXT("button"), TEXT("infobutton"),
WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
30, 50, 100, 50,
hWnd, (HMENU)SUBWND_INFO_BUTTON,
((LPCREATESTRUCT)lParam)->hInstance, NULL);
case WM_SETCURSOR:
if ((HWND)wParam == m_hADHandle) {
SetCursor(LoadCursor(NULL, IDC_HAND));
HDC hSubdc = GetDC((HWND)wParam);
SetTextColor(hSubdc, RGB(255, 0, 0));
TextOut(hSubdc, 0, 0, TEXT("趙大哥博客園主頁"), ...);
ReleaseDC(m_hADHandle, hSubdc);
return TRUE; // 屏蔽 DefWindowProc 防止閃爍
}
// ... 其他按鈕同理 ...
break;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case SUBWND_COPYRIGHT_BUTTON:
if (HIWORD(wParam) == BN_CLICKED) {
ShellExecute(hWnd, TEXT("open"),
TEXT("https://www.cnblogs.com/learn-my-life/"),
TEXT(""), TEXT(""), SW_SHOWNORMAL);
}
break;
}
break;
按鈕點擊訊息由父視窗處理。完整代碼稍後上傳。