Print Page | Close Window

Load Logo is error.

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Command Bars
Forum Description: Topics Related to Codejock Command Bars
URL: http://forum.codejock.com/forum_posts.asp?TID=12280
Printed Date: 28 February 2025 at 8:05pm
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: Load Logo is error.
Posted By: homaas
Subject: Load Logo is error.
Date Posted: 28 September 2008 at 10:54pm
I want load logo as image below
 
I want load logo for dialog with toolbar (not Ribbonbar) ,it ok in WinXP,winVista, but it not display logo in Win98, please help me.
 



Replies:
Posted By: homaas
Date Posted: 29 September 2008 at 3:13am
code for load Logo Image:
 
 
Bool :: OnInitDialog()
{
VERIFY(m_bmpLogo.LoadBitmap(IDB_LOGO));
 BITMAP bm;
 m_bmpLogo.GetBitmap(&bm);
 m_imgLogo.Create(NULL, WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(0, 0, 0, bm.bmHeight), this); 
 if(!m_wndReBar.Create(this, 0)
   || !m_wndReBar.AddBar(&m_imgLogo, NULL, NULL, RBBS_NOGRIPPER | RBBS_FIXEDBMP | RBBS_FIXEDSIZE)) {
   return -1;
 }
 UpdateLogoImage();
}
 
/////////
void ::OnPaint()
{
 CPaintDC dc(this); 
 UpdateLogoImage();
}
////////
 
void ::UpdateLogoImage()
{
 RepositionBars( AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0 );
 if(m_imgLogo.GetSafeHwnd()) {
  RECT r;
  GetClientRect(&r);
  m_imgLogo.SetBitmap(NULL);
  BITMAP bmLogo;
  m_bmpLogo.GetBitmap(&bmLogo);
  int nWidth = r.right - r.left;
  int nHeight = bmLogo.bmHeight;
  CBitmap bmpNew;
  bmpNew.CreateCompatibleBitmap(GetDC(), nWidth, nHeight);
  CDC dcBmpSrc;
  if(dcBmpSrc.CreateCompatibleDC(NULL)) {
   dcBmpSrc.SelectObject(m_bmpLogo);
   CDC dcBmpNew;
   if(dcBmpNew.CreateCompatibleDC(NULL)) {
    dcBmpNew.SelectObject(bmpNew);
    BITMAP bmSrc;
    m_bmpLogo.GetBitmap(&bmSrc);
    dcBmpNew.FillRect(CRect(0, 0, nWidth, nHeight), &CBrush((COLORREF)0xffffff));
    dcBmpNew.BitBlt(nWidth - bmSrc.bmWidth, 0, bmSrc.bmWidth, bmSrc.bmHeight, &dcBmpSrc, 0, 0, SRCCOPY);
    dcBmpNew.DeleteDC();
    m_imgLogo.SetBitmap(bmpNew);    }
   dcBmpSrc.DeleteDC();
  }
 }
}
 
 


Posted By: Oleg
Date Posted: 29 September 2008 at 4:12am
Hi,
You call GetDC but not ReleaseDC, you call GetDC in OnPaint handler.
 
Comment this call in OnPaint. better move it to OnSize. and dont' forget add ReleaseDC.


-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS


Posted By: homaas
Date Posted: 30 September 2008 at 12:45am

hi Oleg,

add ReleaseDC in OnPaint: but not display logo
 
void ::OnPaint()
{
 CPaintDC dc(this);
 HDC hdc=dc.GetSafeHdc();
 UpdateLogoImage();
 ::ReleaseDC(GetSafeHwnd(),hdc);
}
 
if I comment GetDC call in OnPaint is not display logo.
 
 
call UpdateLogoImage() int Onsize();
 
void ::OnSize(UINT nType, int cx, int cy)

 CXTPDialogBase<CXTResizeDialog>::OnSize(nType, cx, cy);
 UpdateLogoImage(); 
}


Posted By: mgampi
Date Posted: 01 October 2008 at 3:57am
Hi;

as Oleg explained, you call GetDC() in UpdateLogoImage() but never call ReleaseDC():

void ::UpdateLogoImage()
{
 RepositionBars( AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0 );
 if(m_imgLogo.GetSafeHwnd()) {
  RECT r;
  GetClientRect(&r);
  m_imgLogo.SetBitmap(NULL);
  BITMAP bmLogo;
  m_bmpLogo.GetBitmap(&bmLogo);
  int nWidth = r.right - r.left;
  int nHeight = bmLogo.bmHeight;
  CBitmap bmpNew;
  bmpNew.CreateCompatibleBitmap(GetDC(), nWidth, nHeight);
  CDC dcBmpSrc;
  if(dcBmpSrc.CreateCompatibleDC(NULL)) {
   dcBmpSrc.SelectObject(m_bmpLogo);
   CDC dcBmpNew;
   if(dcBmpNew.CreateCompatibleDC(NULL)) {
    dcBmpNew.SelectObject(bmpNew);
    BITMAP bmSrc;
    m_bmpLogo.GetBitmap(&bmSrc);
    dcBmpNew.FillRect(CRect(0, 0, nWidth, nHeight), &CBrush((COLORREF)0xffffff));
    dcBmpNew.BitBlt(nWidth - bmSrc.bmWidth, 0, bmSrc.bmWidth, bmSrc.bmHeight, &dcBmpSrc, 0, 0, SRCCOPY);
    dcBmpNew.DeleteDC();
    m_imgLogo.SetBitmap(bmpNew);    }
   dcBmpSrc.DeleteDC();
  }
 }
}



-------------
Martin

Product: Xtreme Toolkit v 22.1.0, new Projects v 24.0.0
Platform: Windows 10 v 22H2 (64bit)
Language: VC++ 2022



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net