Edit Style ändern



  • 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


Anmelden zum Antworten