Ahoj,
odebrání okrajů funguje dobře, nicméně navrácení titulkového pruhu a okrajů nedělá, co má. Okno se nejdříve schová do lišty úloh, hned vyleze a překreslí se, ale místo obsahu se zobrazí s modrým pozadím. Při kliknutí na něj pravým tlačítkem se místo WM_RBUTTONDOWN vyvolá menu [obnovit, přesunout, velikost...]. Při zmáčknutí na obnovit nebo při deaktivaci a opětovné aktivaci se vše spraví. Proč se to tak chová a jak to můžu opravit, aby se okno obnovilo hned? InvalidateRect ani UpdateWindow to nespraví. Předem díky za odpovědi!
void RemoveCaptionAndBorder(void)
{
LONG lStyle = GetWindowLong(g_hWnd, GWL_STYLE);
lStyle &= ~(WS_CAPTION | WS_THICKFRAME | WS_MINIMIZE | WS_SYSMENU);
SetWindowLong(g_hWnd, GWL_STYLE, lStyle);
SetWindowPos(g_hWnd, NULL, 0,0,0,0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER);
}
void AddCaptionAndBorder(void)
{
LONG lStyle = GetWindowLong(g_hWnd, GWL_STYLE);
lStyle |= (WS_CAPTION | WS_THICKFRAME | WS_MINIMIZE | WS_SYSMENU);
SetWindowLong(g_hWnd, GWL_STYLE, lStyle);
SetWindowPos(g_hWnd, NULL, 0,0,0,0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER);
}