Я испробовал функцию всплывающей подсказки в коде win32, когда нажал «ОК», сообщение отображается только тогда, когда мы наводим курсор на конкретное поле. Но функция, которую я ожидаю, это автоматическое отображение сообщения в определенном окне при нажатии «ОК». Можно ли добавить такую функцию автоматического всплывающего окна? Мне нужно всплывающее окно с сообщением об ошибке. Мой точный сценарий - всплывающее окно с ошибкой, когда в диалоговом окне задан ноль, когда нажата кнопка «ОК».
HWND gzui_controls::create_tool_tip_balloon(HWND hdlg, int tool_id, PTSTR text) const { if (!tool_id || !hdlg || !text) { return FALSE; }
HWND hwndTool = GetDlgItem(hdlg, tool_id);
if (WM_LBUTTONUP)
{
HWND hwndTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL,
WS_POPUP | SWP_NOMOVE | TTS_NOPREFIX | TTS_BALLOON | BS_PUSHBUTTON,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
hdlg, NULL,
getModuleInstance(), NULL);
if (!hwndTool || !hwndTip)
{
return (HWND)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 = text;
SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);
return hwndTip;
}