void CPWToolBar::SetupImageList(const GuiRecord *guiInfo, GuiRecordGetter GetBM, GuiRecordGetter GetDisBM, const int numBMs, const int nImageList) { // See http://www.parashift.com/c++-faq/macro-for-ptr-to-memfn.html #define CALL_MEMBER_FN(object,ptrToMember) ((object).*(ptrToMember)) const COLORREF crCOLOR_3DFACE = GetSysColor(COLOR_3DFACE); CBitmap bmNormal, bmDisabled; for (int i = 0; i < numBMs; i++) { UINT bmID = CALL_MEMBER_FN(guiInfo[i], GetBM)(); if (bmID == 0) continue; // skip over separator BOOL brc = bmNormal.Attach(::LoadImage(::AfxFindResourceHandle(MAKEINTRESOURCE(bmID), RT_BITMAP), MAKEINTRESOURCE(bmID), IMAGE_BITMAP, 0, 0, (LR_DEFAULTSIZE | LR_CREATEDIBSECTION))); ASSERT(brc); SetBitmapBackground(bmNormal, crCOLOR_3DFACE); m_ImageLists[nImageList].Add(&bmNormal, crCOLOR_3DFACE); bmNormal.DeleteObject(); if (nImageList != 0) { bmID = CALL_MEMBER_FN(guiInfo[i], GetDisBM)(); bmDisabled.Attach(::LoadImage(::AfxFindResourceHandle(MAKEINTRESOURCE(bmID), RT_BITMAP), MAKEINTRESOURCE(bmID), IMAGE_BITMAP, 0, 0, (LR_DEFAULTSIZE | LR_CREATEDIBSECTION))); SetBitmapBackground(bmDisabled, crCOLOR_3DFACE); m_DisabledImageLists[nImageList - 1].Add(&bmDisabled, crCOLOR_3DFACE); bmDisabled.DeleteObject(); } } }
void CDDStatic::ReInit(const UINT nImageID, const UINT nDisabledImageID) { // Detach old bitmaps, attach new ones m_OKbitmap.Detach(); m_NOTOKbitmap.Detach(); BOOL brc; brc = m_OKbitmap.Attach(::LoadImage( ::AfxFindResourceHandle(MAKEINTRESOURCE(nImageID), RT_BITMAP), MAKEINTRESOURCE(nImageID), IMAGE_BITMAP, 0, 0, (LR_DEFAULTSIZE | LR_CREATEDIBSECTION | LR_SHARED))); ASSERT(brc); brc = m_NOTOKbitmap.Attach(::LoadImage( ::AfxFindResourceHandle(MAKEINTRESOURCE(nDisabledImageID), RT_BITMAP), MAKEINTRESOURCE(nDisabledImageID), IMAGE_BITMAP, 0, 0, (LR_DEFAULTSIZE | LR_CREATEDIBSECTION | LR_SHARED))); ASSERT(brc); const COLORREF crCOLOR_3DFACE = GetSysColor(COLOR_3DFACE); SetBitmapBackground(m_OKbitmap, crCOLOR_3DFACE); SetBitmapBackground(m_NOTOKbitmap, crCOLOR_3DFACE); if (m_bState) { SetBitmap((HBITMAP)m_OKbitmap); } else { SetBitmap((HBITMAP)m_NOTOKbitmap); } }
void CDDStatic::Init(const UINT nImageID, const UINT nDisabledImageID) { m_pDropTarget->Register(this); // Save resource IDs (Static and required image) m_nID = GetDlgCtrlID(); // Load bitmap BOOL brc; brc = m_OKbitmap.Attach(::LoadImage( ::AfxFindResourceHandle(MAKEINTRESOURCE(nImageID), RT_BITMAP), MAKEINTRESOURCE(nImageID), IMAGE_BITMAP, 0, 0, (LR_DEFAULTSIZE | LR_CREATEDIBSECTION | LR_SHARED))); ASSERT(brc); brc = m_NOTOKbitmap.Attach(::LoadImage( ::AfxFindResourceHandle(MAKEINTRESOURCE(nDisabledImageID), RT_BITMAP), MAKEINTRESOURCE(nDisabledImageID), IMAGE_BITMAP, 0, 0, (LR_DEFAULTSIZE | LR_CREATEDIBSECTION | LR_SHARED))); ASSERT(brc); const COLORREF crCOLOR_3DFACE = GetSysColor(COLOR_3DFACE); SetBitmapBackground(m_OKbitmap, crCOLOR_3DFACE); SetBitmapBackground(m_NOTOKbitmap, crCOLOR_3DFACE); // Set bitmap in Static m_bState = false; SetBitmap((HBITMAP)m_NOTOKbitmap); }
void CTBMStatic::Init(const UINT nImageID) { // Save resource IDs (Static and required image) m_nID = GetDlgCtrlID(); // Load bitmap VERIFY(m_Bitmap.Attach(::LoadImage( ::AfxFindResourceHandle(MAKEINTRESOURCE(nImageID), RT_BITMAP), MAKEINTRESOURCE(nImageID), IMAGE_BITMAP, 0, 0, (LR_DEFAULTSIZE | LR_CREATEDIBSECTION | LR_SHARED)))); const COLORREF crCOLOR_3DFACE = GetSysColor(COLOR_3DFACE); SetBitmapBackground(m_Bitmap, crCOLOR_3DFACE); SetBitmap((HBITMAP)m_Bitmap); }
BOOL CSetDBID::OnInitDialog() { CPWDialog::OnInitDialog(); // Trying to get our icon to get background colour (failed when System Tray // icon created in ThisMafApp as too early - no main dialog HWND). // Windows 10 default is black but Windows 7 seems to be white NOTIFYICONIDENTIFIER nii = { sizeof(nii) }; nii.hWnd = m_pParent->GetSafeHwnd(); nii.uID = PWS_MSG_ICON_NOTIFY; nii.guidItem = GUID_NULL; RECT rcIcon; HRESULT hr = Shell_NotifyIconGetRect(&nii, &rcIcon); COLORREF clr = (COLORREF)-1; if (SUCCEEDED(hr)) { CWnd *pWnd = CWnd::GetDesktopWindow(); CDC *pDC = pWnd->GetDC(); clr = pDC->GetPixel(rcIcon.right + 1, rcIcon.top + 1); pws_os::Trace(L"clr: %06x; R=%d; G=%d; B=%d\n", clr, GetRValue(clr), GetGValue(clr), GetBValue(clr)); clr = RGB(GetRValue(clr), GetGValue(clr), GetBValue(clr)); ReleaseDC(pDC); } m_clrBackground = (clr != (COLORREF)-1) ? clr : GetSysColor(COLOR_BACKGROUND); m_Brush.CreateSolidBrush(m_clrBackground); VERIFY(m_bmLocked.Attach(::LoadImage( ::AfxFindResourceHandle(MAKEINTRESOURCE(IDB_LOCKED_TRAY_INDEX), RT_BITMAP), MAKEINTRESOURCE(IDB_LOCKED_TRAY_INDEX), IMAGE_BITMAP, 0, 0, (LR_DEFAULTSIZE | LR_CREATEDIBSECTION)))); VERIFY(m_bmUnlocked.Attach(::LoadImage( ::AfxFindResourceHandle(MAKEINTRESOURCE(IDB_UNLOCKED_TRAY_INDEX), RT_BITMAP), MAKEINTRESOURCE(IDB_UNLOCKED_TRAY_INDEX), IMAGE_BITMAP, 0, 0, (LR_DEFAULTSIZE | LR_CREATEDIBSECTION)))); SetBitmapBackground(m_bmLocked); SetBitmapBackground(m_bmUnlocked); m_clrLockedTextColour = m_pParent->GetLockedIndexColour(); m_clrUnlockedTextColour = m_pParent->GetUnlockedIndexColour(); for (int i = 0; i < 4; i++) { if (m_clrLockedTextOptions[i] == m_clrLockedTextColour) { m_iLockedTextColour = i; break; } } for (int i = 0; i < 4; i++) { if (m_clrUnlockedTextOptions[i] == m_clrUnlockedTextColour) { m_iUnLockedTextColour = i; break; } } CreateIndexBitmap(55, m_clrLockedTextColour, true); CreateIndexBitmap(55, m_clrUnlockedTextColour, false); // Index if between 1 & 99 m_edtSBIndex.SetLimitText(2); UpdateData(FALSE); GotoDlgCtrl((CWnd *)&m_edtSBIndex); m_bInitDone = true; return FALSE; // return TRUE unless you set the focus to a control }