Пример #1
0
void Control::WriteRes(ResFile &resFile, bool ex, bool last)
{
    resFile.Align();
    if (!ex)
    {
        resFile.WriteDWord(style);
        resFile.WriteDWord(exStyle);
    }
    else
    {
        resFile.WriteDWord(helpIndex);
        resFile.WriteDWord(exStyle);
        resFile.WriteDWord(style);
    }
    pos.WriteRes(resFile);
    size.WriteRes(resFile);
    if (ex)
        resFile.WriteDWord(id);
    else
        resFile.WriteWord(id);
    cls.WriteRes(resFile);
    text.WriteRes(resFile);
    int len = 0;
    for (iterator it = begin() ; it != end(); ++it)
    {
        len += (*it)->GetLen();
    }
    resFile.WriteWord(len);
    if (len)
    {
        resFile.Align();
        for (iterator it = begin() ; it != end(); ++it)
        {
            if ((*it)->GetLen())
            {
                resFile.WriteData((*it)->GetData(), (*it)->GetLen());
            }
        }
    }
}
Пример #2
0
void Dialog::WriteRes(ResFile &resFile)
{
    Resource::WriteRes(resFile);
    if (!extended)
    {
        resFile.WriteDWord(style);
        resFile.WriteDWord(exStyle);
    } 
    else
    {
        resFile.WriteWord(1);
        resFile.WriteWord(0xffff);
        resFile.WriteDWord(helpIndex);
        resFile.WriteDWord(exStyle);
        resFile.WriteDWord(style);
    }
    resFile.WriteWord(controls.size());
    pos.WriteRes(resFile);
    size.WriteRes(resFile);

    menu.WriteRes(resFile);
    cls.WriteRes(resFile);

    resFile.WriteString(caption);

    if (style & DS_SETFONT)
    {
        resFile.WriteWord(pointSize);
        if (extended)
        {
            resFile.WriteWord(weight);
            resFile.WriteWord(italics);
        }
        resFile.WriteString(font);
    }
    int count = controls.size();
    for (iterator it = begin(); it != end(); ++it)
    {
        resFile.Align();
        (*it)->WriteRes(resFile, extended, !--count);
    }
    resFile.Release();
}