Available in the LEADTOOLS Imaging toolkit. |
ShowCustomizePaletteDlg Example for C++ 5.0 and later
void CDialog::OnShowCustomizePalletteDlg() { HRESULT hr; int nRet; ILEADRasterDlgKrn_U *m_pRasterDlgKrn = NULL; hr = CoCreateInstance(CLSID_LEADRasterDlgKrn_U, NULL, CLSCTX_ALL, IID_ILEADRasterDlgKrn_U, (LPVOID*)&m_pRasterDlgKrn); ILEADRasterDlgClr_U *m_pRasterDlgClr = NULL; hr = CoCreateInstance(CLSID_LEADRasterDlgClr_U, NULL, CLSCTX_ALL, IID_ILEADRasterDlgClr_U, (LPVOID*)&m_pRasterDlgClr); nRet = m_pRasterDlgKrn->InitDlg(INIT_WITH_COLOR); m_pRasterDlgClr->UserPaletteCount = 256; for (int i = 0; i < 256; i++) { m_pRasterDlgClr->PutUserPalette(i, RGB(i,0,0)); } m_pRasterDlgClr->UIFlags = CUSTOMIZEPALETTE_SHOW_SORT | CUSTOMIZEPALETTE_SHOW_FINDCLOSEST | CUSTOMIZEPALETTE_SHOW_ADDOPTION | CUSTOMIZEPALETTE_SHOW_REMOVEOPTION | CUSTOMIZEPALETTE_SHOW_COLORMODEL | CUSTOMIZEPALETTE_SHOW_RGBLEFTPAN | CUSTOMIZEPALETTE_SHOW_HTMLLEFTPAN | CUSTOMIZEPALETTE_SHOW_INDEXLEFTPAN | CUSTOMIZEPALETTE_SHOW_RGBRIGHTPAN | CUSTOMIZEPALETTE_SHOW_HTMLRIGHTPAN | CUSTOMIZEPALETTE_SHOW_INDEXRIGHTPAN | CUSTOMIZEPALETTE_SHOW_NEW | CUSTOMIZEPALETTE_SHOW_OPEN | CUSTOMIZEPALETTE_SHOW_SAVE | CUSTOMIZEPALETTE_SHOW_SAVEAS | CUSTOMIZEPALETTE_GENERATE_PALETTE; m_pRasterDlgClr->Bitmap = m_pLead1.GetBitmap(); nRet = m_pRasterDlgClr->ShowCustomizePaletteDlg((long)m_hWnd); if (nRet == 0 && m_pRasterDlgClr->DialogStatus == DLG_OK) { if (m_pRasterDlgClr->ApplyPaletteWhenExit) MessageBox(TEXT("True")); else MessageBox(TEXT("False")); for (int i = 0; i < 256; i++) { m_pLead1.put_UserPalette(i, m_pRasterDlgClr->GetUserPalette(i)); } } }