Delphi32.com - Home!
| Home/News | Downloads | Forums | D32 Magazine | Resources | Info and Facts |  
 
 Non VCL Bitmap buffering


How do I create a non VCL memory display context and bitmap for additional drawing performance?   

    You will need to use low level Windows API functions. Example:

    procedure TForm .Button Click(Sender: TObject);
    var
      dc : hdc;
      MemDc : hdc;
      MemBitmap : hBitmap;
      OldMemBitmap : hBitmap;
    begin
    {Get the handle to the screen's dc}
      dc := GetDc(0);
    {Create and retrieve a handle to a memory dc based on the screen}
      MemDc := CreateCompatibleDc(dc);
    {Create a bitmap that is compatible with the display.}
    {Note: if you pass "MemDc" to CreateCompatibleBitmap()}
    {instead of "dc", you will get a monochrome bitmap!}
      MemBitmap := CreateCompatibleBitmap(dc,  00,  00);
    {Release the screen dc}
      ReleaseDc(0, dc);
    {Select the bitmap surface into the MemDc}
    {remembering the default bitmap}
      OldMemBitmap := SelectObject(MemDc, MemBitmap);
    {Draw on the MemoryDc}
      PatBlt(MemDc, 0, 0,  00,  00, WHITENESS);
      Ellipse(MemDc, 0, 0,  00,  00);
    {Copy the MemDc to the Form Canvas}
      BitBlt(Form .Canvas.Handle,
              00,  00,
              00,  00,
             MemDc,
             0, 0,
             SRCCOPY);
    {Select the default bitmap back into the memory dc}
      SelectObject(MemDc, OldMemBitmap);
    {Note: You can now use the memory bitmap handle with}
    {functions such as GetDiBits()}
    {Delete the Memory Bitmap}
      DeleteObject(MemBitmap);
    {Delete the MemoryDc}
      DeleteDc(MemDc);
    end;
    

     



  << Previous Faq     Complete List     Next Faq >>  



 
 Hits/month  2,500,000+ 
 Downloads
 (Since May 2000)
 7,393,709 
 Total Files  6,023 
 Forum msgs  7,670 
 Articles/FAQs  70+/900+ 
Kylix
Tips n Tricks
FAQs
Knowledge Base
Bug Listings
Articles
Books
Newsgroups
Links
Submissions
Testimonials
Advertising
Contact Us
About Us
Search Amazon:
Top Selling Software at Amazon

| Home/News | Downloads | Forums | Resources | Info and Facts | Testimonials |
  Site Search:
 


Comments/Problems: Webmaster@delphi32.com
Copyright © 1998-2006, Delphi32.com. All rights reserved.
Terms of Use