Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS General Discussion » Using CExtColorCtrl dialog in a static built Prof-UIS library Collapse All
Subject Author Date
Christophe Guibert Sep 25, 2004 - 1:46 PM

Dear Sir,


I would like to use the CExtColorCtrl dialog with the Prof-UIS static library. It does not work (the DoModal() method does nothing).


(However it works well with the DLL version of Prof-UIS.)


Could you help please ?


Best Regards


Christophe Guibert

Technical Support Sep 28, 2004 - 6:22 AM

The static library does not include any resource dependent classes. So, you cannot use the CExtColorDlg "as is". But you may use the following dialog that is a resource independent version of the color dialog:

class CTestDlg : public CExtColorDlg
{
    public:
    CTestDlg(
        COLORREF clrInit = RGB(255,255,255),
        COLORREF clrNew = RGB(255,255,255),
        CWnd * pParent = NULL
        );
    virtual int DoModal();
protected:
    virtual BOOL OnInitDialog();
};

CTestDlg::CTestDlg( COLORREF clrInit, COLORREF clrNew, CWnd * pParent )
    : CExtColorDlg( clrInit, clrNew, pParent )
{
    m_lpszTemplateName = 0;
    m_nIDHelp = 0;
}

int CTestDlg::DoModal() 
{
    ASSERT_VALID( this );
static const BYTE g_arrDlgTemplateSrcBytes[] =
{
0x01,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x40,0x00,0xCF,0x92,
0x23,0x00,0x00,0x00,0x00,0x00,0xE6,0x00,0xB9,0x00,0x00,0x00,0x00,0x00,0x53,0x00,
0x65,0x00,0x6C,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6F,0x00,
0x6C,0x00,0x6F,0x00,0x72,0x00,0x20,0x00,0x2E,0x00,0x2E,0x00,0x2E,0x00,0x00,0x00,
0x08,0x00,0x00,0x00,0x00,0x01,0x4D,0x00,0x53,0x00,0x20,0x00,0x53,0x00,0x61,0x00,
0x6E,0x00,0x73,0x00,0x20,0x00,0x53,0x00,0x65,0x00,0x72,0x00,0x69,0x00,0x66,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x50,
0x07,0x00,0x09,0x00,0x19,0x00,0x09,0x00,0x53,0x76,0x00,0x00,0xFF,0xFF,0x82,0x00,
0x43,0x00,0x6F,0x00,0x6C,0x00,0x6F,0x00,0x72,0x00,0x73,0x00,0x3A,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x21,0x50,
0x22,0x00,0x07,0x00,0xBD,0x00,0x39,0x00,0x3E,0x75,0x00,0x00,0xFF,0xFF,0x85,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,
0x07,0x00,0x19,0x00,0x8B,0x00,0x82,0x00,0x3D,0x75,0x00,0x00,0xFF,0xFF,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x50,
0x95,0x00,0x1A,0x00,0x23,0x00,0x0A,0x00,0x3F,0x75,0x00,0x00,0xFF,0xFF,0x82,0x00,
0x52,0x00,0x65,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x82,0x20,0x81,0x50,0xBC,0x00,0x18,0x00,0x23,0x00,0x0C,0x00,
0x40,0x75,0x00,0x00,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x50,0xD5,0x00,0x1C,0x00,0x0C,0x00,0x07,0x00,
0x50,0x75,0x00,0x00,0x6D,0x00,0x73,0x00,0x63,0x00,0x74,0x00,0x6C,0x00,0x73,0x00,
0x5F,0x00,0x75,0x00,0x70,0x00,0x64,0x00,0x6F,0x00,0x77,0x00,0x6E,0x00,0x33,0x00,
0x32,0x00,0x00,0x00,0x53,0x00,0x70,0x00,0x69,0x00,0x6E,0x00,0x31,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x50,
0x95,0x00,0x26,0x00,0x23,0x00,0x0A,0x00,0x41,0x75,0x00,0x00,0xFF,0xFF,0x82,0x00,
0x47,0x00,0x72,0x00,0x65,0x00,0x65,0x00,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x20,0x81,0x50,0xBC,0x00,0x24,0x00,
0x23,0x00,0x0C,0x00,0x42,0x75,0x00,0x00,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x50,0xD5,0x00,0x28,0x00,
0x0C,0x00,0x07,0x00,0x51,0x75,0x00,0x00,0x6D,0x00,0x73,0x00,0x63,0x00,0x74,0x00,
0x6C,0x00,0x73,0x00,0x5F,0x00,0x75,0x00,0x70,0x00,0x64,0x00,0x6F,0x00,0x77,0x00,
0x6E,0x00,0x33,0x00,0x32,0x00,0x00,0x00,0x53,0x00,0x70,0x00,0x69,0x00,0x6E,0x00,
0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x02,0x50,0x95,0x00,0x33,0x00,0x23,0x00,0x0A,0x00,0x43,0x75,0x00,0x00,
0xFF,0xFF,0x82,0x00,0x42,0x00,0x6C,0x00,0x75,0x00,0x65,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x20,0x81,0x50,0xBC,0x00,0x31,0x00,
0x23,0x00,0x0C,0x00,0x44,0x75,0x00,0x00,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x50,0xD5,0x00,0x35,0x00,
0x0C,0x00,0x07,0x00,0x52,0x75,0x00,0x00,0x6D,0x00,0x73,0x00,0x63,0x00,0x74,0x00,
0x6C,0x00,0x73,0x00,0x5F,0x00,0x75,0x00,0x70,0x00,0x64,0x00,0x6F,0x00,0x77,0x00,
0x6E,0x00,0x33,0x00,0x32,0x00,0x00,0x00,0x53,0x00,0x70,0x00,0x69,0x00,0x6E,0x00,
0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x02,0x50,0x95,0x00,0x42,0x00,0x23,0x00,0x0A,0x00,0x4E,0x75,0x00,0x00,
0xFF,0xFF,0x82,0x00,0x43,0x00,0x79,0x00,0x61,0x00,0x6E,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x20,0x81,0x50,0xBC,0x00,0x41,0x00,
0x23,0x00,0x0C,0x00,0x4F,0x75,0x00,0x00,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x50,0xD5,0x00,0x45,0x00,
0x0C,0x00,0x07,0x00,0x56,0x75,0x00,0x00,0x6D,0x00,0x73,0x00,0x63,0x00,0x74,0x00,
0x6C,0x00,0x73,0x00,0x5F,0x00,0x75,0x00,0x70,0x00,0x64,0x00,0x6F,0x00,0x77,0x00,
0x6E,0x00,0x33,0x00,0x32,0x00,0x00,0x00,0x53,0x00,0x70,0x00,0x69,0x00,0x6E,0x00,
0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x02,0x50,0x95,0x00,0x4F,0x00,0x23,0x00,0x0A,0x00,0x57,0x75,0x00,0x00,
0xFF,0xFF,0x82,0x00,0x4D,0x00,0x61,0x00,0x67,0x00,0x65,0x00,0x6E,0x00,0x74,0x00,
0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x82,0x20,0x81,0x50,0xBC,0x00,0x4D,0x00,0x23,0x00,0x0C,0x00,0x58,0x75,0x00,0x00,
0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x36,0x00,0x00,0x50,0xD5,0x00,0x51,0x00,0x0C,0x00,0x07,0x00,0x59,0x75,0x00,0x00,
0x6D,0x00,0x73,0x00,0x63,0x00,0x74,0x00,0x6C,0x00,0x73,0x00,0x5F,0x00,0x75,0x00,
0x70,0x00,0x64,0x00,0x6F,0x00,0x77,0x00,0x6E,0x00,0x33,0x00,0x32,0x00,0x00,0x00,
0x53,0x00,0x70,0x00,0x69,0x00,0x6E,0x00,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x50,0x95,0x00,0x5C,0x00,
0x23,0x00,0x0A,0x00,0x5A,0x75,0x00,0x00,0xFF,0xFF,0x82,0x00,0x59,0x00,0x65,0x00,
0x6C,0x00,0x6C,0x00,0x6F,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x82,0x20,0x81,0x50,0xBC,0x00,0x5A,0x00,0x23,0x00,0x0C,0x00,
0x5B,0x75,0x00,0x00,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x50,0xD5,0x00,0x5E,0x00,0x0C,0x00,0x07,0x00,
0x5C,0x75,0x00,0x00,0x6D,0x00,0x73,0x00,0x63,0x00,0x74,0x00,0x6C,0x00,0x73,0x00,
0x5F,0x00,0x75,0x00,0x70,0x00,0x64,0x00,0x6F,0x00,0x77,0x00,0x6E,0x00,0x33,0x00,
0x32,0x00,0x00,0x00,0x53,0x00,0x70,0x00,0x69,0x00,0x6E,0x00,0x31,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x50,
0x95,0x00,0x6C,0x00,0x23,0x00,0x0A,0x00,0x45,0x75,0x00,0x00,0xFF,0xFF,0x82,0x00,
0x48,0x00,0x75,0x00,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x82,0x20,0x81,0x50,0xBC,0x00,0x6A,0x00,0x23,0x00,0x0C,0x00,
0x46,0x75,0x00,0x00,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x50,0xD5,0x00,0x6D,0x00,0x0C,0x00,0x07,0x00,
0x53,0x75,0x00,0x00,0x6D,0x00,0x73,0x00,0x63,0x00,0x74,0x00,0x6C,0x00,0x73,0x00,
0x5F,0x00,0x75,0x00,0x70,0x00,0x64,0x00,0x6F,0x00,0x77,0x00,0x6E,0x00,0x33,0x00,
0x32,0x00,0x00,0x00,0x53,0x00,0x70,0x00,0x69,0x00,0x6E,0x00,0x31,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x50,
0x95,0x00,0x79,0x00,0x23,0x00,0x0A,0x00,0x47,0x75,0x00,0x00,0xFF,0xFF,0x82,0x00,
0x53,0x00,0x61,0x00,0x74,0x00,0x75,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,
0x6F,0x00,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x82,0x20,0x81,0x50,0xBC,0x00,0x77,0x00,0x23,0x00,0x0C,0x00,0x48,0x75,0x00,0x00,
0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x36,0x00,0x00,0x50,0xD5,0x00,0x7B,0x00,0x0C,0x00,0x07,0x00,0x54,0x75,0x00,0x00,
0x6D,0x00,0x73,0x00,0x63,0x00,0x74,0x00,0x6C,0x00,0x73,0x00,0x5F,0x00,0x75,0x00,
0x70,0x00,0x64,0x00,0x6F,0x00,0x77,0x00,0x6E,0x00,0x33,0x00,0x32,0x00,0x00,0x00,
0x53,0x00,0x70,0x00,0x69,0x00,0x6E,0x00,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x50,0x95,0x00,0x86,0x00,
0x23,0x00,0x0A,0x00,0x49,0x75,0x00,0x00,0xFF,0xFF,0x82,0x00,0x4C,0x00,0x69,0x00,
0x67,0x00,0x68,0x00,0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x82,0x20,0x81,0x50,0xBC,0x00,0x84,0x00,0x23,0x00,0x0C,0x00,
0x4A,0x75,0x00,0x00,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x50,0xD5,0x00,0x88,0x00,0x0C,0x00,0x07,0x00,
0x55,0x75,0x00,0x00,0x6D,0x00,0x73,0x00,0x63,0x00,0x74,0x00,0x6C,0x00,0x73,0x00,
0x5F,0x00,0x75,0x00,0x70,0x00,0x64,0x00,0x6F,0x00,0x77,0x00,0x6E,0x00,0x33,0x00,
0x32,0x00,0x00,0x00,0x53,0x00,0x70,0x00,0x69,0x00,0x6E,0x00,0x31,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x50,
0x95,0x00,0x98,0x00,0x23,0x00,0x0A,0x00,0x4C,0x75,0x00,0x00,0xFF,0xFF,0x82,0x00,
0x4E,0x00,0x65,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0xBC,0x00,0x95,0x00,0x23,0x00,0x1D,0x00,
0x4B,0x75,0x00,0x00,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x50,0x95,0x00,0xA6,0x00,0x23,0x00,0x0A,0x00,
0x4D,0x75,0x00,0x00,0xFF,0xFF,0x82,0x00,0x43,0x00,0x75,0x00,0x72,0x00,0x72,0x00,
0x65,0x00,0x6E,0x00,0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x50,0x07,0x00,0xA2,0x00,0x32,0x00,0x10,0x00,
0x01,0x00,0x00,0x00,0xFF,0xFF,0x80,0x00,0x4F,0x00,0x4B,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x50,0x3E,0x00,0xA2,0x00,
0x32,0x00,0x10,0x00,0x02,0x00,0x00,0x00,0xFF,0xFF,0x80,0x00,0x43,0x00,0x61,0x00,
0x6E,0x00,0x63,0x00,0x65,0x00,0x6C,0x00,0x00,0x00,0x00,0x00,
};
BYTE arrDlgTemplateDstBytes[
    sizeof(g_arrDlgTemplateSrcBytes)
    / sizeof(g_arrDlgTemplateSrcBytes[0])
    ];
    ::memcpy(
        arrDlgTemplateDstBytes,
        g_arrDlgTemplateSrcBytes,
        sizeof(g_arrDlgTemplateSrcBytes)
        );
LPDLGTEMPLATE pDlgTemplateDst =
        (LPDLGTEMPLATE)arrDlgTemplateDstBytes;
    m_lpszTemplateName = NULL;
    m_lpDialogTemplate = NULL;
    InitModalIndirect( pDlgTemplateDst, m_pParentWnd );
    return CExtColorDlg::DoModal();
}

BOOL CTestDlg::OnInitDialog() 
{
LPCTSTR g_arrComboItems[] =
{
_T(" basic colors"),
_T(" hue, saturation and luminance - mixer"),
_T(" hue, saturation and luminance - basic hue"),
_T(" hue, saturation and luminance - roller"),
_T(" red, green and blue - cube"),
_T(" red, green and blue - mixer"),
_T(" gray scale mixer"),
_T(" cyan, magenta and yellow - cube"),
_T(" cyan, magenta and yellow - mixer"),
_T(" red axis"),
_T(" green axis"),
_T(" blue axis"),
_T(" cyan axis"),
_T(" magenta axis"),
_T(" yellow axis"),
};
HWND hWnd = ::GetDlgItem( m_hWnd, 30014 );
    ASSERT( hWnd != NULL );
    for(    int i = 0;
            i < sizeof(g_arrComboItems)/sizeof(g_arrComboItems[0]);
            i++
        )
        ::SendMessage(
            hWnd,
            CB_ADDSTRING,
            0L,
            (LONG)g_arrComboItems[i]
            );
    CExtColorDlg::OnInitDialog();
    return TRUE;
}

Please ignore several assertions in the Prof-UIS color dialog’s code (they relate to the loading of the dialog’s icon).

Christophe Guibert Sep 29, 2004 - 2:25 AM

Dear Sir,


Thank you for this trick which works perfectly (I had to comment out the assertions relative to icons in the library).


I would not have thought of including the template resource in binary form in the source code !


Best Regards,


Christophe Guibert