SetWindowPos - störendes Flackern
-
Hallo Leute, ich möchte das die User mein Fenster (keine Titelleiste etc, nur ein bisschen Text und nen Border) das Fenster wie gewohnt verschieben können.
Nur eben nicht auf die Titelleiste, sondern direkt ins Fenster klicken...Ich habe jetzt folgenden Ansatz:
case WM_MOUSEMOVE: if(wParam == MK_LBUTTON) SetWindowPos(hwndMain,HWND_TOP,LOWORD(lParam),HIWORD(lParam),0,0,SWP_NOSIZE); break;allerdings bekomme ich nun ein störendes Flackern und man kann das Fenster ja auch nur solange verschieben wie man mit dem Mauszeiger im Fenster bleibt (wenn man also zu schnell ist gehts nich...)
Habt ihr andere Vorschläge?
MFG

-
case WM_NCHITTEST: return HTCAPTION;
-
thx

-
oh ich hab grad gemerkt, dass jetzt ein normaler Mausklick und Rechtsklick nicht mehr bearbeitet bzw empfangen wird

-
Braucht man ja im Normalfall auch nicht, da man ja für sowas Child-Windows erstellen kann

-
Verwende diesen Code:
UINT uHitTest; ... case WM_NCHITTEST: uHitTest = DefWindowProc(hwnd, WM_NCHITTEST, wParam, lParam); if(uHitTest == HTCLIENT) return HTCAPTION; else return uHitTest;
-
Aziz schrieb:
Verwende diesen Code:
UINT uHitTest; ... case WM_NCHITTEST: uHitTest = DefWindowProc(hwnd, WM_NCHITTEST, wParam, lParam); if(uHitTest == HTCLIENT) return HTCAPTION; else return uHitTest;leider immer noch das gleiche Problem

-
Machs so:
case WM_LBUTTONDOWN: ReleaseCapture(); SendMessage(hwnd, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0); return 0;