Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#5

Re: [nonVCL] Subclassing eines StcCtrl's / falscher Font...

  Alt 30. Jun 2007, 17:05
WM_CREATE wird leider im Subcass nicht aufgerufen.

Ich habe es erst einmal so gelöst:
Delphi-Quellcode:
var
  OldProc: Pointer;
  Font, olf: HFONT;

function WndProc(hWnd: HWND; uMsg: UINT; wParam, lParam: Integer): LRESULT; stdcall;
var
  ps: PAINTSTRUCT;
  DC: HDC;
  r: trect;
begin
  Result := 0;

  case uMsg of
    WM_PAINT:
      begin
        DC := BeginPaint(hWnd, ps);
        SetBkMode(DC, TRANSPARENT);

        GetClientRect(hWnd, r);
        windows.FrameRect(DC, r, GetStockObject(WHITE_BRUSH));

        olf := SelectObject(DC, Font);
        DrawText(DC, PChar(_MyText), length(_MyText), r,
          DT_SINGLELINE   or DT_NOPREFIX or DT_CENTER or DT_VCENTER);
        SelectObject(DC, olf);

        EndPaint(hWnd, ps);
      end;
    else
      Result := CallWindowProc(OldProc, hWnd, uMsg, wParam, lParam);
  end;
end;
nur hätt ich's gern als echtes Subclassing mit WM_SETFONT. Ich habe es auch mit SetClassLong versucht, jedoch ohne Erfolg.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat