E
Hi,
ich seh mal wieder den Sprichwörtl. Wald nicht...
Ich möchte den Style eines gesubclassten Edit-Controls ändern.
LRESULT CALLBACK SubEdit (HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_LBUTTONDOWN:
if (ONETIME)
break;
else
{
SetWindowLongPtr(hwnd, GWL_STYLE, GetWindowLongPtr(hwnd, GWL_STYLE) | ES_PASSWORD);
//edit mit SetWindowPos() gehts auch nicht
SetWindowPos(hwnd,NULL,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
SetWindowText(hwnd, "");
ONETIME = true;
}
break;
}
return CallWindowProc ((WNDPROC) OldEditProc, hwnd, msg, wParam, lParam);
}
Das ONETIME ist lediglich dort, damit er nur einmal beim Klick auf das Edit den style ändert.
So wurde es erstellt und gesubclassed:
hEdit = CreateWindow("edit", "", WS_VISIBLE|WS_CHILD| ES_LEFT|ES_AUTOHSCROLL,
150, 100, 200, 20, hwnd, (HMENU)5993, GetModuleHandle (NULL), 0);
OldEditProc = SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR) SubEdit);
ONETIME wird zurückgesetzt wenn sich der Dialog, indem sich das Edit befindet öffnet (in der WM_INITDIALOG).
Ja, mehr gibts eig. nicht zu sagen. Hat jemand spontan eine Idee?
Bei Fragen, fragen.
Danke!
Bis Bald ein.brot