Ignore:
Timestamp:
May 23, 2008, 10:35:36 PM (16 years ago)
Author:
dai_9181
Message:

WindowInfoクラスをリファクタリング

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/abdev/DrawWindow.cpp

    r623 r624  
    687687    DeleteObject(hBmp);
    688688}
    689 void DesigningWindow(int WndNum,HDC hdc,POINT *pBasePos,const WindowInfo *pWindowInfo){
     689void DesigningWindow(int WndNum,HDC hdc,POINT *pBasePos,const ActiveBasic::PM::WindowInfo *pWindowInfo){
    690690    extern MDIINFO MdiInfo[MAX_WNDNUM];
    691691    int i,i2,i3,i4;
     
    713713    InsideRect.bottom=InsideRect.top+pWindowInfo->size.cy;
    714714
    715     if(pWindowInfo->style&(WS_BORDER|WS_THICKFRAME)){
     715    if(pWindowInfo->GetStyle()&(WS_BORDER|WS_THICKFRAME)){
    716716        DrawEdge(hdc,&InsideRect,EDGE_RAISED,BF_RECT);
    717717
     
    725725    ////////////
    726726    //枠を描画
    727     if(pWindowInfo->style&(WS_BORDER|WS_THICKFRAME)){
     727    if(pWindowInfo->GetStyle()&(WS_BORDER|WS_THICKFRAME)){
    728728        //細枠
    729729        hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_ACTIVEBORDER));
     
    739739
    740740        //サイズ変更枠
    741         if(pWindowInfo->style&WS_THICKFRAME){
     741        if(pWindowInfo->GetStyle()&WS_THICKFRAME){
    742742            Rectangle(hdc,InsideRect.left,InsideRect.top,InsideRect.right,InsideRect.bottom);
    743743
     
    758758    MdiInfo[WndNum].MdiRadInfo->ClientPos.y=0;
    759759
    760     if(pWindowInfo->style&(WS_CAPTION&(~WS_BORDER))){
     760    if(pWindowInfo->GetStyle()&(WS_CAPTION&(~WS_BORDER))){
    761761        //////////////////////
    762762        //タイトルバーを描画
     
    773773        }
    774774        else i2=i;
    775         if(pWindowInfo->ExStyle&WS_EX_TOOLWINDOW)
     775        if(pWindowInfo->GetExStyle()&WS_EX_TOOLWINDOW)
    776776            i3=GetSystemMetrics(SM_CYSMCAPTION);
    777777        else i3=GetSystemMetrics(SM_CYCAPTION);
     
    805805        rect.right=InsideRect.right;
    806806        rect.bottom=InsideRect.top+i3;
    807         DrawText(hdc,pWindowInfo->caption,lstrlen(pWindowInfo->caption),&rect,DT_SINGLELINE|DT_VCENTER|DT_NOPREFIX);
     807        DrawText(hdc,pWindowInfo->GetCaption().c_str(),pWindowInfo->GetCaption().size(),&rect,DT_SINGLELINE|DT_VCENTER|DT_NOPREFIX);
    808808        SelectObject(hdc,hOldFont);
    809809        DeleteObject(hFont);
    810810
    811811        //ボタン
    812         if(pWindowInfo->style&WS_SYSMENU){
     812        if(pWindowInfo->GetStyle()&WS_SYSMENU){
    813813            //終了ボタン
    814814            size.cx=GetSystemMetrics(SM_CXSIZE)-2;
     
    857857            GlobalFree(pByte2);
    858858
    859             if(pWindowInfo->style&WS_MAXIMIZEBOX||pWindowInfo->style&WS_MINIMIZEBOX){
     859            if(pWindowInfo->GetStyle()&WS_MAXIMIZEBOX||pWindowInfo->GetStyle()&WS_MINIMIZEBOX){
    860860                //最大化ボタン
    861861                size.cx=GetSystemMetrics(SM_CXSIZE)-2;
     
    864864                pos.y=InsideRect.top+2;
    865865                DrawButtonEdge(WndNum,&pos,&size);
    866                 if(!(pWindowInfo->style&WS_MAXIMIZEBOX)){
     866                if(!(pWindowInfo->GetStyle()&WS_MAXIMIZEBOX)){
    867867                    pos.x++;
    868868                    pos.y++;
     
    897897                pos.y=InsideRect.top+2;
    898898                DrawButtonEdge(WndNum,&pos,&size);
    899                 if(!(pWindowInfo->style&WS_MINIMIZEBOX)){
     899                if(!(pWindowInfo->GetStyle()&WS_MINIMIZEBOX)){
    900900                    pos.x++;
    901901                    pos.y++;
     
    927927    }
    928928
    929     if(pWindowInfo->MenuID){
     929    if( pWindowInfo->HasMenu() )
     930    {
    930931        //メニューラインを3DFACEで描画
    931932        rgb=GetSysColor(COLOR_3DFACE);
     
    954955    size.cx=InsideRect.right-InsideRect.left;
    955956    size.cy=InsideRect.bottom-InsideRect.top;
    956     DrawItemEdgeByExStyle(WndNum,pWindowInfo->ExStyle,&pos,&size);
     957    DrawItemEdgeByExStyle(WndNum,pWindowInfo->GetExStyle(),&pos,&size);
    957958
    958959    //スクロールバーを描画
    959     DrawWindowScrollBar(WndNum,pWindowInfo->style,&pos,&size);
     960    DrawWindowScrollBar(WndNum,pWindowInfo->GetStyle(),&pos,&size);
    960961
    961962    //クライアント領域のサイズを設定
     
    965966    //////////////
    966967    //背景を描画
    967     if(pWindowInfo->bgColor==COLOR_3DFACE){
     968    if(pWindowInfo->GetBackgroundColor()==COLOR_3DFACE){
    968969        //3DFACE
    969970        hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DFACE));
     
    977978        DeleteObject(hBrush);
    978979    }
    979     else if(pWindowInfo->bgColor<=0){
     980    else if(pWindowInfo->GetBackgroundColor()<=0){
    980981        //色指定
    981         hPen=CreatePen(PS_SOLID,0,-pWindowInfo->bgColor);
    982         hBrush=CreateSolidBrush(-pWindowInfo->bgColor);
     982        hPen=CreatePen(PS_SOLID,0,-pWindowInfo->GetBackgroundColor());
     983        hBrush=CreateSolidBrush(-pWindowInfo->GetBackgroundColor());
    983984        hOldPen=(HPEN)SelectObject(hdc,hPen);
    984985        hOldBrush=(HBRUSH)SelectObject(hdc,hBrush);
     
    989990        DeleteObject(hBrush);
    990991    }
    991     else if(pWindowInfo->bgColor>=0x1000){
     992    else if(pWindowInfo->GetBackgroundColor()>=0x1000){
    992993        //ビットマップ
    993         for(i2=0;i2<projectInfo.resourceManager.bitmapResources.size();i2++){
    994             if( projectInfo.resourceManager.bitmapResources[pWindowInfo->bgColor-0x1000].idName == projectInfo.resourceManager.bitmapResources[i2].idName )
     994        BOOST_FOREACH( const ActiveBasic::Common::ResourceItem &resourceItem, projectInfo.resourceManager.bitmapResources )
     995        {
     996            if( projectInfo.resourceManager.bitmapResources[pWindowInfo->GetBackgroundColor()-0x1000].idName == resourceItem.idName )
    995997            {
     998                lstrcpy(temporary,resourceItem.filepath.c_str());
     999                lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
     1000                hImage=LoadImage(NULL,temporary,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
     1001
     1002                hBrush=CreatePatternBrush((HBITMAP)hImage);
     1003                hOldBrush=(HBRUSH)SelectObject(hdc,hBrush);
     1004                SetBrushOrgEx(hdc,InsideRect.left,InsideRect.top,&pos);
     1005                PatBlt(hdc,
     1006                    InsideRect.left, InsideRect.top,
     1007                    InsideRect.right-InsideRect.left, InsideRect.bottom-InsideRect.top,PATCOPY);
     1008                SetBrushOrgEx(hdc,pos.x,pos.y,0);
     1009                SelectObject(hdc,hOldBrush);
     1010                DeleteObject(hBrush);
     1011                DeleteObject(hImage);
     1012
    9961013                break;
    9971014            }
    998         }
    999         if(i2!=projectInfo.resourceManager.bitmapResources.size()){
    1000             lstrcpy(temporary,projectInfo.resourceManager.bitmapResources[i2].filepath.c_str());
    1001             lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    1002             hImage=LoadImage(NULL,temporary,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
    1003 
    1004             hBrush=CreatePatternBrush((HBITMAP)hImage);
    1005             hOldBrush=(HBRUSH)SelectObject(hdc,hBrush);
    1006             SetBrushOrgEx(hdc,InsideRect.left,InsideRect.top,&pos);
    1007             PatBlt(hdc,
    1008                 InsideRect.left, InsideRect.top,
    1009                 InsideRect.right-InsideRect.left, InsideRect.bottom-InsideRect.top,PATCOPY);
    1010             SetBrushOrgEx(hdc,pos.x,pos.y,0);
    1011             SelectObject(hdc,hOldBrush);
    1012             DeleteObject(hBrush);
    1013             DeleteObject(hImage);
    10141015        }
    10151016    }
     
    10191020    //子ウィンドウ(ダイアログアイテム)を描画
    10201021    hFont=CreateFontIndirect(&pWindowInfo->LogFont);
    1021     BOOST_FOREACH( CHILDINFO *pChildInfo, pWindowInfo->childWindowInfos )
     1022    BOOST_FOREACH( ActiveBasic::PM::ChildWindowInfo *pChildInfo, pWindowInfo->childWindowInfos )
    10221023    {
    10231024        pos=pChildInfo->pos;
     
    10251026
    10261027        //ExStyleによる縁を描画
    1027         DrawItemEdgeByExStyle(WndNum,pChildInfo->ExStyle,&pos,&size);
     1028        DrawItemEdgeByExStyle(WndNum,pChildInfo->GetExStyle(),&pos,&size);
    10281029
    10291030        if(pChildInfo->Control==CT_BUTTON){
     
    10311032            // Button コントロール
    10321033
    1033             if((pChildInfo->style&0x0000000F)==BS_DEFPUSHBUTTON){
     1034            if((pChildInfo->GetStyle()&0x0000000F)==BS_DEFPUSHBUTTON){
    10341035                //標準のボタンの場合(黒枠描画)
    10351036                DrawRectangleInClient(WndNum,
     
    10461047            DrawButtonEdge(WndNum,&pos,&size);
    10471048
    1048             if(!(pChildInfo->style&(BS_ICON|BS_BITMAP))){
     1049            if(!(pChildInfo->GetStyle()&(BS_ICON|BS_BITMAP))){
    10491050                //キャプション テキスト
    10501051
     
    10541055                rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    10551056
    1056                 if(pChildInfo->style&BS_MULTILINE) i4=0;
     1057                if(pChildInfo->GetStyle()&BS_MULTILINE) i4=0;
    10571058                else i4=DT_SINGLELINE;
    10581059
    10591060                //ビットを考慮してBS_CENTERを最初に比較する
    1060                 if((pChildInfo->style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
    1061                 else if(pChildInfo->style&BS_LEFT) i2=DT_LEFT;
    1062                 else if(pChildInfo->style&BS_RIGHT) i2=DT_RIGHT;
     1061                if((pChildInfo->GetStyle()&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
     1062                else if(pChildInfo->GetStyle()&BS_LEFT) i2=DT_LEFT;
     1063                else if(pChildInfo->GetStyle()&BS_RIGHT) i2=DT_RIGHT;
    10631064                else i2=DT_CENTER;
    10641065
    10651066                //ビットを考慮してBS_VCENTERを最初に比較する
    1066                 if((pChildInfo->style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
    1067                 else if(pChildInfo->style&BS_TOP) i3=DT_TOP;
    1068                 else if(pChildInfo->style&BS_BOTTOM) i3=DT_BOTTOM;
     1067                if((pChildInfo->GetStyle()&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
     1068                else if(pChildInfo->GetStyle()&BS_TOP) i3=DT_TOP;
     1069                else if(pChildInfo->GetStyle()&BS_BOTTOM) i3=DT_BOTTOM;
    10691070                else i3=DT_VCENTER;
    10701071
    10711072                hOldFont=(HFONT)SelectObject(hdc,hFont);
    1072                 if(pChildInfo->style&WS_DISABLED){
     1073                if(pChildInfo->GetStyle()&WS_DISABLED){
    10731074                    SetTextColor(hdc,RGB(255,255,255));
    10741075                    rc2.left=rect.left+1;
     
    10761077                    rc2.right=rect.right+1;
    10771078                    rc2.bottom=rect.bottom+1;
    1078                     DrawText(hdc,pChildInfo->caption,-1,&rc2,i4|i2|i3);
     1079                    DrawText(hdc,pChildInfo->GetCaption().c_str(),-1,&rc2,i4|i2|i3);
    10791080                    SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    10801081                }
    10811082                else SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT));
    10821083
    1083                 DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2|i3);
     1084                DrawText(hdc,pChildInfo->GetCaption().c_str(),-1,&rect,i4|i2|i3);
    10841085                SelectObject(hdc,hOldFont);
    10851086            }
     
    10891090            // CheckBox コントロール
    10901091
    1091             if(pChildInfo->style&BS_PUSHLIKE){
     1092            if(pChildInfo->GetStyle()&BS_PUSHLIKE){
    10921093                //ボタンの縁を描画
    10931094                DrawButtonEdge(WndNum,&pos,&size);
     
    10971098                size2.cx=13;
    10981099                size2.cy=13;
    1099                 if(pChildInfo->style&BS_LEFTTEXT)
     1100                if(pChildInfo->GetStyle()&BS_LEFTTEXT)
    11001101                    pos2.x=pos.x+size.cx-size2.cx;
    11011102                else pos2.x=pos.x;
    1102                 if((pChildInfo->style&BS_VCENTER)==BS_VCENTER||
    1103                     (pChildInfo->style&BS_VCENTER)==0)
     1103                if((pChildInfo->GetStyle()&BS_VCENTER)==BS_VCENTER||
     1104                    (pChildInfo->GetStyle()&BS_VCENTER)==0)
    11041105                    pos2.y=pos.y+(size.cy/2)-(size2.cy/2);
    1105                 else if(pChildInfo->style&BS_TOP)
     1106                else if(pChildInfo->GetStyle()&BS_TOP)
    11061107                    pos2.y=pos.y+1;
    1107                 else if(pChildInfo->style&BS_BOTTOM)
     1108                else if(pChildInfo->GetStyle()&BS_BOTTOM)
    11081109                    pos2.y=pos.y+size.cy-size2.cy-1;
    11091110                DrawItemEdgeByExStyle(WndNum,WS_EX_CLIENTEDGE,&pos2,&size2);
    11101111
    1111                 if(pChildInfo->style&WS_DISABLED)
     1112                if(pChildInfo->GetStyle()&WS_DISABLED)
    11121113                    rgb=GetSysColor(COLOR_3DFACE);
    11131114                else rgb=GetSysColor(COLOR_WINDOW);
     
    11151116                    pos2.x+size2.cx, pos2.y+size2.cy,
    11161117                    rgb,rgb,1);
    1117                 if(!(pChildInfo->style&BS_LEFTTEXT)) pos.x+=17;
     1118                if(!(pChildInfo->GetStyle()&BS_LEFTTEXT)) pos.x+=17;
    11181119                else pos.x++;
    11191120                size.cx-=17;
    11201121            }
    11211122
    1122             if(!(pChildInfo->style&(BS_ICON|BS_BITMAP))){
     1123            if(!(pChildInfo->GetStyle()&(BS_ICON|BS_BITMAP))){
    11231124                //キャプション テキスト
    11241125                rect.left=pos.x+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
     
    11271128                rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    11281129
    1129                 if(pChildInfo->style&BS_MULTILINE) i4=0;
     1130                if(pChildInfo->GetStyle()&BS_MULTILINE) i4=0;
    11301131                else i4=DT_SINGLELINE;
    11311132
    11321133                //ビットを考慮してBS_CENTERを最初に比較する
    1133                 if((pChildInfo->style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
    1134                 else if(pChildInfo->style&BS_LEFT) i2=DT_LEFT;
    1135                 else if(pChildInfo->style&BS_RIGHT) i2=DT_RIGHT;
     1134                if((pChildInfo->GetStyle()&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
     1135                else if(pChildInfo->GetStyle()&BS_LEFT) i2=DT_LEFT;
     1136                else if(pChildInfo->GetStyle()&BS_RIGHT) i2=DT_RIGHT;
    11361137                else i2=DT_LEFT;
    11371138
    11381139                //ビットを考慮してBS_VCENTERを最初に比較する
    1139                 if((pChildInfo->style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
    1140                 else if(pChildInfo->style&BS_TOP) i3=DT_TOP;
    1141                 else if(pChildInfo->style&BS_BOTTOM) i3=DT_BOTTOM;
     1140                if((pChildInfo->GetStyle()&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
     1141                else if(pChildInfo->GetStyle()&BS_TOP) i3=DT_TOP;
     1142                else if(pChildInfo->GetStyle()&BS_BOTTOM) i3=DT_BOTTOM;
    11421143                else i3=DT_VCENTER;
    11431144
    11441145                hOldFont=(HFONT)SelectObject(hdc,hFont);
    1145                 if(pChildInfo->style&WS_DISABLED){
     1146                if(pChildInfo->GetStyle()&WS_DISABLED){
    11461147                    SetTextColor(hdc,RGB(255,255,255));
    11471148                    rc2.left=rect.left+1;
     
    11491150                    rc2.right=rect.right+1;
    11501151                    rc2.bottom=rect.bottom+1;
    1151                     DrawText(hdc,pChildInfo->caption,-1,&rc2,i4|i2|i3);
     1152                    DrawText(hdc,pChildInfo->GetCaption().c_str(),-1,&rc2,i4|i2|i3);
    11521153                    SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    11531154                }
    11541155                else SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT));
    11551156
    1156                 DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2|i3);
     1157                DrawText(hdc,pChildInfo->GetCaption().c_str(),-1,&rect,i4|i2|i3);
    11571158                SelectObject(hdc,hOldFont);
    11581159            }
     
    11681169
    11691170            //内部
    1170             if(pChildInfo->style&WS_DISABLED)
     1171            if(pChildInfo->GetStyle()&WS_DISABLED)
    11711172                rgb=GetSysColor(COLOR_3DFACE);
    11721173            else rgb=GetSysColor(COLOR_WINDOW);
     
    11761177                rgb,rgb,1);
    11771178
    1178             if((pChildInfo->style&0x000F)==CBS_SIMPLE){
     1179            if((pChildInfo->GetStyle()&0x000F)==CBS_SIMPLE){
    11791180                pos.y+=20;
    11801181                size.cy-=20;
     
    12021203
    12031204                pos2.x--;
    1204                 if(pChildInfo->style&WS_DISABLED){
     1205                if(pChildInfo->GetStyle()&WS_DISABLED){
    12051206                    hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    12061207                    hOldPen=(HPEN)SelectObject(hdc,hPen);
     
    12331234
    12341235            //内部
    1235             if(pChildInfo->style&WS_DISABLED||pChildInfo->style&ES_READONLY)
     1236            if(pChildInfo->GetStyle()&WS_DISABLED||pChildInfo->GetStyle()&ES_READONLY)
    12361237                rgb=GetSysColor(COLOR_3DFACE);
    12371238            else rgb=GetSysColor(COLOR_WINDOW);
     
    12471248            rect.bottom=pos.y+size.cy-1+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    12481249
    1249             if(pChildInfo->style&ES_MULTILINE) i4=0;
     1250            if(pChildInfo->GetStyle()&ES_MULTILINE) i4=0;
    12501251            else i4=DT_SINGLELINE;
    12511252
    12521253            //ビットを考慮してES_LEFTを最後に検討する
    1253             if(pChildInfo->style&ES_CENTER) i2=DT_CENTER;
    1254             else if(pChildInfo->style&ES_RIGHT) i2=DT_RIGHT;
     1254            if(pChildInfo->GetStyle()&ES_CENTER) i2=DT_CENTER;
     1255            else if(pChildInfo->GetStyle()&ES_RIGHT) i2=DT_RIGHT;
    12551256            else i2=DT_LEFT;
    12561257
    12571258            //文字色を設定
    1258             if(pChildInfo->style&WS_DISABLED)
     1259            if(pChildInfo->GetStyle()&WS_DISABLED)
    12591260                SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    12601261            else
     
    12621263
    12631264            hOldFont=(HFONT)SelectObject(hdc,hFont);
    1264             DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2);
     1265            DrawText(hdc,pChildInfo->GetCaption().c_str(),-1,&rect,i4|i2);
    12651266            SelectObject(hdc,hOldFont);
    12661267        }
     
    12711272
    12721273            hOldFont=(HFONT)SelectObject(hdc,hFont);
    1273             GetTextExtentPoint32(hdc,pChildInfo->caption,lstrlen(pChildInfo->caption),&size2);
     1274            GetTextExtentPoint32(hdc,pChildInfo->GetCaption().c_str(),pChildInfo->GetCaption().size(),&size2);
    12741275
    12751276            //枠を描画
     
    12811282
    12821283            //ビットを考慮してBS_CENTERを最初に検討する
    1283             if((pChildInfo->style&BS_CENTER)==BS_CENTER){
     1284            if((pChildInfo->GetStyle()&BS_CENTER)==BS_CENTER){
    12841285                rect.left=pos.x+(size.cx/2)-(size2.cx/2)-3;
    12851286                rect.right=rect.left+size2.cx+4;
    12861287            }
    1287             else if(pChildInfo->style&BS_RIGHT){
     1288            else if(pChildInfo->GetStyle()&BS_RIGHT){
    12881289                rect.right=pos.x+size.cx-7;
    12891290                rect.left=rect.right-size2.cx-4;
     
    12961297            rect.bottom=pos.y+size2.cy;
    12971298
    1298             if(pWindowInfo->bgColor==COLOR_3DFACE) rgb=GetSysColor(COLOR_3DFACE);
    1299             else rgb=-pWindowInfo->bgColor;
     1299            if(pWindowInfo->GetBackgroundColor()==COLOR_3DFACE) rgb=GetSysColor(COLOR_3DFACE);
     1300            else rgb=-pWindowInfo->GetBackgroundColor();
    13001301            DrawRectangleInClient(WndNum,rect.left,rect.top,rect.right,rect.bottom,rgb,rgb,1);
    13011302
    1302             if(!((pChildInfo->style&BS_ICON)||(pChildInfo->style&BS_BITMAP))){
     1303            if(!((pChildInfo->GetStyle()&BS_ICON)||(pChildInfo->GetStyle()&BS_BITMAP))){
    13031304                rect.left+=MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    13041305                rect.top+=MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     
    13091310
    13101311                //テキストを描画
    1311                 if(pChildInfo->style&WS_DISABLED){
     1312                if(pChildInfo->GetStyle()&WS_DISABLED){
    13121313                    SetTextColor(hdc,RGB(255,255,255));
    13131314                    rc2.left=rect.left+1;
     
    13151316                    rc2.right=rect.right+1;
    13161317                    rc2.bottom=rect.bottom+1;
    1317                     DrawText(hdc,pChildInfo->caption,-1,&rc2,DT_SINGLELINE);
     1318                    DrawText(hdc,pChildInfo->GetCaption().c_str(),-1,&rc2,DT_SINGLELINE);
    13181319                    SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    13191320                }
     
    13211322                    SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT));
    13221323
    1323                 DrawText(hdc,pChildInfo->caption,-1,&rect,DT_SINGLELINE);
     1324                DrawText(hdc,pChildInfo->GetCaption().c_str(),-1,&rect,DT_SINGLELINE);
    13241325            }
    13251326            SelectObject(hdc,hOldFont);
     
    13291330            ////////////////////////////////////
    13301331            // 水平スクロールバー コントロール
    1331             DrawScrollBar(WndNum,pChildInfo->style,0,&pos,&size);
     1332            DrawScrollBar(WndNum,pChildInfo->GetStyle(),0,&pos,&size);
    13321333        }
    13331334
     
    13371338            HDC memdc;
    13381339
    1339             if((pChildInfo->style&0x0000000F)==SS_BLACKFRAME)
     1340            if((pChildInfo->GetStyle()&0x0000000F)==SS_BLACKFRAME)
    13401341                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,RGB(0,0,0),0,0);
    1341             else if((pChildInfo->style&0x0000000F)==SS_GRAYFRAME)
     1342            else if((pChildInfo->GetStyle()&0x0000000F)==SS_GRAYFRAME)
    13421343                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,GetSysColor(COLOR_3DSHADOW),0,0);
    1343             else if((pChildInfo->style&0x0000000F)==SS_WHITEFRAME)
     1344            else if((pChildInfo->GetStyle()&0x0000000F)==SS_WHITEFRAME)
    13441345                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,RGB(255,255,255),0,0);
    1345             else if((pChildInfo->style&0x0000001F)==SS_ETCHEDFRAME){
     1346            else if((pChildInfo->GetStyle()&0x0000001F)==SS_ETCHEDFRAME){
    13461347                rect.left=pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    13471348                rect.top=pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     
    13501351                DrawEdge(hdc,&rect,EDGE_ETCHED,BF_RECT);
    13511352            }
    1352             else if((pChildInfo->style&0x0000000F)==SS_BLACKRECT)
     1353            else if((pChildInfo->GetStyle()&0x0000000F)==SS_BLACKRECT)
    13531354                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,GetSysColor(COLOR_3DDKSHADOW),GetSysColor(COLOR_3DDKSHADOW),1);
    1354             else if((pChildInfo->style&0x0000000F)==SS_GRAYRECT)
     1355            else if((pChildInfo->GetStyle()&0x0000000F)==SS_GRAYRECT)
    13551356                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,GetSysColor(COLOR_3DSHADOW),GetSysColor(COLOR_3DSHADOW),1);
    1356             else if((pChildInfo->style&0x0000000F)==SS_WHITERECT)
     1357            else if((pChildInfo->GetStyle()&0x0000000F)==SS_WHITERECT)
    13571358                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,RGB(255,255,255),RGB(255,255,255),1);
    1358             else if((pChildInfo->style&0x0000000F)==SS_ICON){
    1359                 if(pChildInfo->ImageCtrlInfo.type==IMGTYPE_FILE)
    1360                     lstrcpy(temporary,pChildInfo->ImageCtrlInfo.path);
    1361                 else{
    1362                     for(i2=0;i2<projectInfo.resourceManager.iconResources.size();i2++)
     1359            else if((pChildInfo->GetStyle()&0x0000000F)==SS_ICON)
     1360            {
     1361                if(pChildInfo->image.IsFile())
     1362                {
     1363                    lstrcpy(temporary,pChildInfo->image.path.c_str());
     1364                }
     1365                else
     1366                {
     1367                    bool isMatch = false;
     1368                    BOOST_FOREACH( const ActiveBasic::Common::ResourceItem &resourceItem, projectInfo.resourceManager.iconResources )
    13631369                    {
    1364                         if( projectInfo.resourceManager.iconResources[i2].idName == pChildInfo->ImageCtrlInfo.path )
     1370                        if( resourceItem.idName == pChildInfo->image.path )
    13651371                        {
     1372                            isMatch = true;
     1373                            lstrcpy(temporary,resourceItem.filepath.c_str());
    13661374                            break;
    13671375                        }
    13681376                    }
    1369                     if(i2==projectInfo.resourceManager.iconResources.size()) goto NonIconImage;
    1370 
    1371                     lstrcpy(temporary,projectInfo.resourceManager.iconResources[i2].filepath.c_str());
     1377                    if( !isMatch )
     1378                    {
     1379                        goto NonIconImage;
     1380                    }
    13721381                }
    13731382                lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
     
    13801389
    13811390                    //ExStyleによる縁を再描画
    1382                     DrawItemEdgeByExStyle(WndNum,pChildInfo->ExStyle,&pos,&size);
     1391                    DrawItemEdgeByExStyle(WndNum,pChildInfo->GetExStyle(),&pos,&size);
    13831392
    13841393                    DrawIcon(hdc,
     
    14011410                }
    14021411            }
    1403             else if((pChildInfo->style&0x0000000F)==SS_BITMAP){
     1412            else if((pChildInfo->GetStyle()&0x0000000F)==SS_BITMAP){
    14041413                BITMAP Bitmap;
    14051414
    1406                 if(pChildInfo->ImageCtrlInfo.type==IMGTYPE_FILE)
    1407                     lstrcpy(temporary,pChildInfo->ImageCtrlInfo.path);
     1415                if(pChildInfo->image.IsFile())
     1416                {
     1417                    lstrcpy(temporary,pChildInfo->image.path.c_str());
     1418                }
    14081419                else{
    1409                     for(i2=0;i2<projectInfo.resourceManager.bitmapResources.size();i2++){
    1410                         if( projectInfo.resourceManager.bitmapResources[i2].idName == pChildInfo->ImageCtrlInfo.path )
     1420                    bool isMatch = false;
     1421                    BOOST_FOREACH( const ActiveBasic::Common::ResourceItem &resourceItem, projectInfo.resourceManager.bitmapResources )
     1422                    {
     1423                        if( resourceItem.idName == pChildInfo->image.path )
    14111424                        {
     1425                            lstrcpy(temporary,resourceItem.filepath.c_str());
     1426                            isMatch = true;
    14121427                            break;
    14131428                        }
    14141429                    }
    1415                     if(i2==projectInfo.resourceManager.bitmapResources.size()) goto NonBitmapImage;
    1416 
    1417                     lstrcpy(temporary,projectInfo.resourceManager.bitmapResources[i2].filepath.c_str());
     1430                    if( !isMatch )
     1431                    {
     1432                        goto NonBitmapImage;
     1433                    }
    14181434                }
    14191435                lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
     
    14281444
    14291445                    //ExStyleによる縁を再描画
    1430                     DrawItemEdgeByExStyle(WndNum,pChildInfo->ExStyle,&pos,&size);
     1446                    DrawItemEdgeByExStyle(WndNum,pChildInfo->GetExStyle(),&pos,&size);
    14311447
    14321448                    memdc=CreateCompatibleDC(hdc);
     
    14611477
    14621478            //内部
    1463             if(pChildInfo->style&WS_DISABLED)
     1479            if(pChildInfo->GetStyle()&WS_DISABLED)
    14641480                rgb=GetSysColor(COLOR_3DFACE);
    14651481            else rgb=GetSysColor(COLOR_WINDOW);
     
    14691485                rgb,rgb,1);
    14701486
    1471             if(pChildInfo->style&LBS_DISABLENOSCROLL)
    1472                 DrawWindowScrollBar(WndNum,pChildInfo->style|WS_DISABLED,&pos,&size);
     1487            if(pChildInfo->GetStyle()&LBS_DISABLENOSCROLL)
     1488                DrawWindowScrollBar(WndNum,pChildInfo->GetStyle()|WS_DISABLED,&pos,&size);
    14731489        }
    14741490
     
    14781494
    14791495            //内部
    1480             if(pChildInfo->style&WS_DISABLED)
     1496            if(pChildInfo->GetStyle()&WS_DISABLED)
    14811497                rgb=GetSysColor(COLOR_3DFACE);
    14821498            else rgb=GetSysColor(COLOR_WINDOW);
     
    14861502                rgb,rgb,1);
    14871503
    1488             if((pChildInfo->style&LVS_REPORT)&&
    1489                 (!((pChildInfo->style&LVS_LIST)==LVS_LIST))){
     1504            if((pChildInfo->GetStyle()&LVS_REPORT)&&
     1505                (!((pChildInfo->GetStyle()&LVS_LIST)==LVS_LIST))){
    14901506                //レポート ビュー
    14911507                size.cy=16;
     
    15041520            size.cy-=2;
    15051521            rgb=GetSysColor(COLOR_ACTIVECAPTION);
    1506             if(pChildInfo->style&PBS_SMOOTH){
    1507                 if(pChildInfo->style&PBS_VERTICAL){
     1522            if(pChildInfo->GetStyle()&PBS_SMOOTH){
     1523                if(pChildInfo->GetStyle()&PBS_VERTICAL){
    15081524                    pos.y+=(long)((double)size.cy*0.3);
    15091525                    DrawRectangleInClient(WndNum,
     
    15201536            }
    15211537            else{
    1522                 if(pChildInfo->style&PBS_VERTICAL){
     1538                if(pChildInfo->GetStyle()&PBS_VERTICAL){
    15231539                    pos.y+=(long)((double)size.cy*0.3);
    15241540                    i3=(size.cx*2)/3;
     
    15481564            // RadioButton コントロール
    15491565
    1550             if(pChildInfo->style&BS_PUSHLIKE){
     1566            if(pChildInfo->GetStyle()&BS_PUSHLIKE){
    15511567                //ボタンの縁を描画
    15521568                DrawButtonEdge(WndNum,&pos,&size);
     
    15561572                size2.cx=12;
    15571573                size2.cy=12;
    1558                 if(pChildInfo->style&BS_LEFTTEXT)
     1574                if(pChildInfo->GetStyle()&BS_LEFTTEXT)
    15591575                    pos2.x=pos.x+size.cx-size2.cx;
    15601576                else pos2.x=pos.x+1;
    1561                 if((pChildInfo->style&BS_VCENTER)==BS_VCENTER||
    1562                     (pChildInfo->style&BS_VCENTER)==0)
     1577                if((pChildInfo->GetStyle()&BS_VCENTER)==BS_VCENTER||
     1578                    (pChildInfo->GetStyle()&BS_VCENTER)==0)
    15631579                    pos2.y=pos.y+(size.cy/2)-(size2.cy/2);
    1564                 else if(pChildInfo->style&BS_TOP)
     1580                else if(pChildInfo->GetStyle()&BS_TOP)
    15651581                    pos2.y=pos.y+1;
    1566                 else if(pChildInfo->style&BS_BOTTOM)
     1582                else if(pChildInfo->GetStyle()&BS_BOTTOM)
    15671583                    pos2.y=pos.y+size.cy-size2.cy-1;
    15681584
     
    15751591
    15761592                    if(rgb==RGB(255,255,0)){
    1577                         if(pWindowInfo->bgColor==COLOR_3DFACE) rgb=GetSysColor(COLOR_3DFACE);
    1578                         else rgb=-pWindowInfo->bgColor;
     1593                        if(pWindowInfo->GetBackgroundColor()==COLOR_3DFACE) rgb=GetSysColor(COLOR_3DFACE);
     1594                        else rgb=-pWindowInfo->GetBackgroundColor();
    15791595                    }
    15801596
     
    15891605                    //内部
    15901606                    else if(rgb==RGB(255,255,255)){
    1591                         if(pChildInfo->style&WS_DISABLED) rgb=GetSysColor(COLOR_3DFACE);
     1607                        if(pChildInfo->GetStyle()&WS_DISABLED) rgb=GetSysColor(COLOR_3DFACE);
    15921608                    }
    15931609
     
    16071623                GlobalFree(pByte2);
    16081624
    1609                 if(!(pChildInfo->style&BS_LEFTTEXT)) pos.x+=17;
     1625                if(!(pChildInfo->GetStyle()&BS_LEFTTEXT)) pos.x+=17;
    16101626                else pos.x++;
    16111627                size.cx-=17;
    16121628            }
    16131629
    1614             if(!(pChildInfo->style&(BS_ICON|BS_BITMAP))){
     1630            if(!(pChildInfo->GetStyle()&(BS_ICON|BS_BITMAP))){
    16151631                //キャプション テキスト
    16161632                rect.left=pos.x+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
     
    16191635                rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    16201636
    1621                 if(pChildInfo->style&BS_MULTILINE) i4=0;
     1637                if(pChildInfo->GetStyle()&BS_MULTILINE) i4=0;
    16221638                else i4=DT_SINGLELINE;
    16231639
    16241640                //ビットを考慮してBS_CENTERを最初に比較する
    1625                 if((pChildInfo->style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
    1626                 else if(pChildInfo->style&BS_LEFT) i2=DT_LEFT;
    1627                 else if(pChildInfo->style&BS_RIGHT) i2=DT_RIGHT;
     1641                if((pChildInfo->GetStyle()&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
     1642                else if(pChildInfo->GetStyle()&BS_LEFT) i2=DT_LEFT;
     1643                else if(pChildInfo->GetStyle()&BS_RIGHT) i2=DT_RIGHT;
    16281644                else i2=DT_LEFT;
    16291645
    16301646                //ビットを考慮してBS_VCENTERを最初に比較する
    1631                 if((pChildInfo->style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
    1632                 else if(pChildInfo->style&BS_TOP) i3=DT_TOP;
    1633                 else if(pChildInfo->style&BS_BOTTOM) i3=DT_BOTTOM;
     1647                if((pChildInfo->GetStyle()&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
     1648                else if(pChildInfo->GetStyle()&BS_TOP) i3=DT_TOP;
     1649                else if(pChildInfo->GetStyle()&BS_BOTTOM) i3=DT_BOTTOM;
    16341650                else i3=DT_VCENTER;
    16351651
    16361652                hOldFont=(HFONT)SelectObject(hdc,hFont);
    1637                 if(pChildInfo->style&WS_DISABLED){
     1653                if(pChildInfo->GetStyle()&WS_DISABLED){
    16381654                    SetTextColor(hdc,RGB(255,255,255));
    16391655                    rc2.left=rect.left+1;
     
    16411657                    rc2.right=rect.right+1;
    16421658                    rc2.bottom=rect.bottom+1;
    1643                     DrawText(hdc,pChildInfo->caption,-1,&rc2,i4|i2|i3);
     1659                    DrawText(hdc,pChildInfo->GetCaption().c_str(),-1,&rc2,i4|i2|i3);
    16441660                    SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    16451661                }
    16461662                else SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT));
    16471663
    1648                 DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2|i3);
     1664                DrawText(hdc,pChildInfo->GetCaption().c_str(),-1,&rect,i4|i2|i3);
    16491665                SelectObject(hdc,hOldFont);
    16501666            }
     
    16621678
    16631679            //ビットを考慮してSS_LEFTを最後に検討する
    1664             if(pChildInfo->style&SS_CENTER) i2=DT_CENTER;
    1665             else if(pChildInfo->style&SS_RIGHT) i2=DT_RIGHT;
     1680            if(pChildInfo->GetStyle()&SS_CENTER) i2=DT_CENTER;
     1681            else if(pChildInfo->GetStyle()&SS_RIGHT) i2=DT_RIGHT;
    16661682            else i2=DT_LEFT;
    16671683
    16681684            hOldFont=(HFONT)SelectObject(hdc,hFont);
    1669             if(pChildInfo->style&WS_DISABLED){
     1685            if(pChildInfo->GetStyle()&WS_DISABLED){
    16701686                SetTextColor(hdc,RGB(255,255,255));
    16711687                rc2.left=rect.left+1;
     
    16731689                rc2.right=rect.right+1;
    16741690                rc2.bottom=rect.bottom+1;
    1675                 DrawText(hdc,pChildInfo->caption,-1,&rc2,i2);
     1691                DrawText(hdc,pChildInfo->GetCaption().c_str(),-1,&rc2,i2);
    16761692                SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    16771693            }
     
    16801696
    16811697            //折り返すかどうか
    1682             if(!(pChildInfo->style&SS_LEFTNOWORDWRAP)){
     1698            if(!(pChildInfo->GetStyle()&SS_LEFTNOWORDWRAP)){
    16831699                i2|=DT_WORDBREAK;
    16841700            }
    16851701
    1686             DrawText(hdc,pChildInfo->caption,-1,&rect,i2);
     1702            DrawText(hdc,pChildInfo->GetCaption().c_str(),-1,&rect,i2);
    16871703            SelectObject(hdc,hOldFont);
    16881704        }
     
    16921708            // TrackBar コントロール
    16931709
    1694             if(pChildInfo->style&TBS_VERT){
     1710            if(pChildInfo->GetStyle()&TBS_VERT){
    16951711                pos.x+=2;
    16961712                size.cx-=2;
     
    17311747
    17321748            //内部
    1733             if(pChildInfo->style&WS_DISABLED)
     1749            if(pChildInfo->GetStyle()&WS_DISABLED)
    17341750                rgb=GetSysColor(COLOR_3DFACE);
    17351751            else rgb=GetSysColor(COLOR_WINDOW);
     
    17431759            ///////////////////////////////
    17441760            // アップ ダウン コントロール
    1745             if(pChildInfo->style&UDS_HORZ)
    1746                 DrawUpDownControl(WndNum,pChildInfo->style,0,&pos,&size);
    1747             else DrawUpDownControl(WndNum,pChildInfo->style,1,&pos,&size);
     1761            if(pChildInfo->GetStyle()&UDS_HORZ)
     1762                DrawUpDownControl(WndNum,pChildInfo->GetStyle(),0,&pos,&size);
     1763            else DrawUpDownControl(WndNum,pChildInfo->GetStyle(),1,&pos,&size);
    17481764        }
    17491765
     
    17511767            ////////////////////////////////////
    17521768            // 垂直スクロールバー コントロール
    1753             DrawScrollBar(WndNum,pChildInfo->style,1,&pos,&size);
     1769            DrawScrollBar(WndNum,pChildInfo->GetStyle(),1,&pos,&size);
    17541770        }
    17551771    }
    17561772    DeleteObject(hFont);
    17571773}
    1758 void DrawRadWindow(int WndNum,const WindowInfo *pWindowInfo){
     1774void DrawRadWindow(int WndNum,const ActiveBasic::PM::WindowInfo *pWindowInfo){
    17591775    extern MDIINFO MdiInfo[MAX_WNDNUM];
    17601776    HBRUSH hOldBrush;
Note: See TracChangeset for help on using the changeset viewer.