Ignore:
Timestamp:
May 19, 2008, 3:03:33 PM (16 years ago)
Author:
dai_9181
Message:

CHILDINFOの管理方法をstd::vectorに変更。

File:
1 edited

Legend:

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

    r615 r616  
    10171017    //子ウィンドウ(ダイアログアイテム)を描画
    10181018    hFont=CreateFontIndirect(&pWindowInfo->LogFont);
    1019     for(i=0;i<pWindowInfo->NumberOfChildWindows;i++){
    1020         pos=pWindowInfo->pChildInfo[i].pos;
    1021         size=pWindowInfo->pChildInfo[i].size;
     1019    BOOST_FOREACH( CHILDINFO *pChildInfo, pWindowInfo->childWindowInfos )
     1020    {
     1021        pos=pChildInfo->pos;
     1022        size=pChildInfo->size;
    10221023
    10231024        //ExStyleによる縁を描画
    1024         DrawItemEdgeByExStyle(WndNum,pWindowInfo->pChildInfo[i].ExStyle,&pos,&size);
    1025 
    1026         if(pWindowInfo->pChildInfo[i].Control==CT_BUTTON){
     1025        DrawItemEdgeByExStyle(WndNum,pChildInfo->ExStyle,&pos,&size);
     1026
     1027        if(pChildInfo->Control==CT_BUTTON){
    10271028            ////////////////////////
    10281029            // Button コントロール
    10291030
    1030             if((pWindowInfo->pChildInfo[i].style&0x0000000F)==BS_DEFPUSHBUTTON){
     1031            if((pChildInfo->style&0x0000000F)==BS_DEFPUSHBUTTON){
    10311032                //標準のボタンの場合(黒枠描画)
    10321033                DrawRectangleInClient(WndNum,
     
    10431044            DrawButtonEdge(WndNum,&pos,&size);
    10441045
    1045             if(!(pWindowInfo->pChildInfo[i].style&(BS_ICON|BS_BITMAP))){
     1046            if(!(pChildInfo->style&(BS_ICON|BS_BITMAP))){
    10461047                //キャプション テキスト
    10471048
     
    10511052                rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    10521053
    1053                 if(pWindowInfo->pChildInfo[i].style&BS_MULTILINE) i4=0;
     1054                if(pChildInfo->style&BS_MULTILINE) i4=0;
    10541055                else i4=DT_SINGLELINE;
    10551056
    10561057                //ビットを考慮してBS_CENTERを最初に比較する
    1057                 if((pWindowInfo->pChildInfo[i].style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
    1058                 else if(pWindowInfo->pChildInfo[i].style&BS_LEFT) i2=DT_LEFT;
    1059                 else if(pWindowInfo->pChildInfo[i].style&BS_RIGHT) i2=DT_RIGHT;
     1058                if((pChildInfo->style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
     1059                else if(pChildInfo->style&BS_LEFT) i2=DT_LEFT;
     1060                else if(pChildInfo->style&BS_RIGHT) i2=DT_RIGHT;
    10601061                else i2=DT_CENTER;
    10611062
    10621063                //ビットを考慮してBS_VCENTERを最初に比較する
    1063                 if((pWindowInfo->pChildInfo[i].style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
    1064                 else if(pWindowInfo->pChildInfo[i].style&BS_TOP) i3=DT_TOP;
    1065                 else if(pWindowInfo->pChildInfo[i].style&BS_BOTTOM) i3=DT_BOTTOM;
     1064                if((pChildInfo->style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
     1065                else if(pChildInfo->style&BS_TOP) i3=DT_TOP;
     1066                else if(pChildInfo->style&BS_BOTTOM) i3=DT_BOTTOM;
    10661067                else i3=DT_VCENTER;
    10671068
    10681069                hOldFont=(HFONT)SelectObject(hdc,hFont);
    1069                 if(pWindowInfo->pChildInfo[i].style&WS_DISABLED){
     1070                if(pChildInfo->style&WS_DISABLED){
    10701071                    SetTextColor(hdc,RGB(255,255,255));
    10711072                    rc2.left=rect.left+1;
     
    10731074                    rc2.right=rect.right+1;
    10741075                    rc2.bottom=rect.bottom+1;
    1075                     DrawText(hdc,pWindowInfo->pChildInfo[i].caption,-1,&rc2,i4|i2|i3);
     1076                    DrawText(hdc,pChildInfo->caption,-1,&rc2,i4|i2|i3);
    10761077                    SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    10771078                }
    10781079                else SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT));
    10791080
    1080                 DrawText(hdc,pWindowInfo->pChildInfo[i].caption,-1,&rect,i4|i2|i3);
     1081                DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2|i3);
    10811082                SelectObject(hdc,hOldFont);
    10821083            }
    10831084        }
    1084         else if(pWindowInfo->pChildInfo[i].Control==CT_CHECKBOX){
     1085        else if(pChildInfo->Control==CT_CHECKBOX){
    10851086            //////////////////////////
    10861087            // CheckBox コントロール
    10871088
    1088             if(pWindowInfo->pChildInfo[i].style&BS_PUSHLIKE){
     1089            if(pChildInfo->style&BS_PUSHLIKE){
    10891090                //ボタンの縁を描画
    10901091                DrawButtonEdge(WndNum,&pos,&size);
     
    10941095                size2.cx=13;
    10951096                size2.cy=13;
    1096                 if(pWindowInfo->pChildInfo[i].style&BS_LEFTTEXT)
     1097                if(pChildInfo->style&BS_LEFTTEXT)
    10971098                    pos2.x=pos.x+size.cx-size2.cx;
    10981099                else pos2.x=pos.x;
    1099                 if((pWindowInfo->pChildInfo[i].style&BS_VCENTER)==BS_VCENTER||
    1100                     (pWindowInfo->pChildInfo[i].style&BS_VCENTER)==0)
     1100                if((pChildInfo->style&BS_VCENTER)==BS_VCENTER||
     1101                    (pChildInfo->style&BS_VCENTER)==0)
    11011102                    pos2.y=pos.y+(size.cy/2)-(size2.cy/2);
    1102                 else if(pWindowInfo->pChildInfo[i].style&BS_TOP)
     1103                else if(pChildInfo->style&BS_TOP)
    11031104                    pos2.y=pos.y+1;
    1104                 else if(pWindowInfo->pChildInfo[i].style&BS_BOTTOM)
     1105                else if(pChildInfo->style&BS_BOTTOM)
    11051106                    pos2.y=pos.y+size.cy-size2.cy-1;
    11061107                DrawItemEdgeByExStyle(WndNum,WS_EX_CLIENTEDGE,&pos2,&size2);
    11071108
    1108                 if(pWindowInfo->pChildInfo[i].style&WS_DISABLED)
     1109                if(pChildInfo->style&WS_DISABLED)
    11091110                    rgb=GetSysColor(COLOR_3DFACE);
    11101111                else rgb=GetSysColor(COLOR_WINDOW);
     
    11121113                    pos2.x+size2.cx, pos2.y+size2.cy,
    11131114                    rgb,rgb,1);
    1114                 if(!(pWindowInfo->pChildInfo[i].style&BS_LEFTTEXT)) pos.x+=17;
     1115                if(!(pChildInfo->style&BS_LEFTTEXT)) pos.x+=17;
    11151116                else pos.x++;
    11161117                size.cx-=17;
    11171118            }
    11181119
    1119             if(!(pWindowInfo->pChildInfo[i].style&(BS_ICON|BS_BITMAP))){
     1120            if(!(pChildInfo->style&(BS_ICON|BS_BITMAP))){
    11201121                //キャプション テキスト
    11211122                rect.left=pos.x+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
     
    11241125                rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    11251126
    1126                 if(pWindowInfo->pChildInfo[i].style&BS_MULTILINE) i4=0;
     1127                if(pChildInfo->style&BS_MULTILINE) i4=0;
    11271128                else i4=DT_SINGLELINE;
    11281129
    11291130                //ビットを考慮してBS_CENTERを最初に比較する
    1130                 if((pWindowInfo->pChildInfo[i].style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
    1131                 else if(pWindowInfo->pChildInfo[i].style&BS_LEFT) i2=DT_LEFT;
    1132                 else if(pWindowInfo->pChildInfo[i].style&BS_RIGHT) i2=DT_RIGHT;
     1131                if((pChildInfo->style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
     1132                else if(pChildInfo->style&BS_LEFT) i2=DT_LEFT;
     1133                else if(pChildInfo->style&BS_RIGHT) i2=DT_RIGHT;
    11331134                else i2=DT_LEFT;
    11341135
    11351136                //ビットを考慮してBS_VCENTERを最初に比較する
    1136                 if((pWindowInfo->pChildInfo[i].style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
    1137                 else if(pWindowInfo->pChildInfo[i].style&BS_TOP) i3=DT_TOP;
    1138                 else if(pWindowInfo->pChildInfo[i].style&BS_BOTTOM) i3=DT_BOTTOM;
     1137                if((pChildInfo->style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
     1138                else if(pChildInfo->style&BS_TOP) i3=DT_TOP;
     1139                else if(pChildInfo->style&BS_BOTTOM) i3=DT_BOTTOM;
    11391140                else i3=DT_VCENTER;
    11401141
    11411142                hOldFont=(HFONT)SelectObject(hdc,hFont);
    1142                 if(pWindowInfo->pChildInfo[i].style&WS_DISABLED){
     1143                if(pChildInfo->style&WS_DISABLED){
    11431144                    SetTextColor(hdc,RGB(255,255,255));
    11441145                    rc2.left=rect.left+1;
     
    11461147                    rc2.right=rect.right+1;
    11471148                    rc2.bottom=rect.bottom+1;
    1148                     DrawText(hdc,pWindowInfo->pChildInfo[i].caption,-1,&rc2,i4|i2|i3);
     1149                    DrawText(hdc,pChildInfo->caption,-1,&rc2,i4|i2|i3);
    11491150                    SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    11501151                }
    11511152                else SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT));
    11521153
    1153                 DrawText(hdc,pWindowInfo->pChildInfo[i].caption,-1,&rect,i4|i2|i3);
     1154                DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2|i3);
    11541155                SelectObject(hdc,hOldFont);
    11551156            }
    11561157        }
    1157         else if(pWindowInfo->pChildInfo[i].Control==CT_COMBOBOX){
     1158        else if(pChildInfo->Control==CT_COMBOBOX){
    11581159            //////////////////////////
    11591160            // ComboBox コントロール
     
    11651166
    11661167            //内部
    1167             if(pWindowInfo->pChildInfo[i].style&WS_DISABLED)
     1168            if(pChildInfo->style&WS_DISABLED)
    11681169                rgb=GetSysColor(COLOR_3DFACE);
    11691170            else rgb=GetSysColor(COLOR_WINDOW);
     
    11731174                rgb,rgb,1);
    11741175
    1175             if((pWindowInfo->pChildInfo[i].style&0x000F)==CBS_SIMPLE){
     1176            if((pChildInfo->style&0x000F)==CBS_SIMPLE){
    11761177                pos.y+=20;
    11771178                size.cy-=20;
     
    11991200
    12001201                pos2.x--;
    1201                 if(pWindowInfo->pChildInfo[i].style&WS_DISABLED){
     1202                if(pChildInfo->style&WS_DISABLED){
    12021203                    hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT));
    12031204                    hOldPen=(HPEN)SelectObject(hdc,hPen);
     
    12251226            }
    12261227        }
    1227         else if(pWindowInfo->pChildInfo[i].Control==CT_EDIT){
     1228        else if(pChildInfo->Control==CT_EDIT){
    12281229            //////////////////////
    12291230            // Edit コントロール
    12301231
    12311232            //内部
    1232             if(pWindowInfo->pChildInfo[i].style&WS_DISABLED||pWindowInfo->pChildInfo[i].style&ES_READONLY)
     1233            if(pChildInfo->style&WS_DISABLED||pChildInfo->style&ES_READONLY)
    12331234                rgb=GetSysColor(COLOR_3DFACE);
    12341235            else rgb=GetSysColor(COLOR_WINDOW);
     
    12441245            rect.bottom=pos.y+size.cy-1+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    12451246
    1246             if(pWindowInfo->pChildInfo[i].style&ES_MULTILINE) i4=0;
     1247            if(pChildInfo->style&ES_MULTILINE) i4=0;
    12471248            else i4=DT_SINGLELINE;
    12481249
    12491250            //ビットを考慮してES_LEFTを最後に検討する
    1250             if(pWindowInfo->pChildInfo[i].style&ES_CENTER) i2=DT_CENTER;
    1251             else if(pWindowInfo->pChildInfo[i].style&ES_RIGHT) i2=DT_RIGHT;
     1251            if(pChildInfo->style&ES_CENTER) i2=DT_CENTER;
     1252            else if(pChildInfo->style&ES_RIGHT) i2=DT_RIGHT;
    12521253            else i2=DT_LEFT;
    12531254
    12541255            //文字色を設定
    1255             if(pWindowInfo->pChildInfo[i].style&WS_DISABLED)
     1256            if(pChildInfo->style&WS_DISABLED)
    12561257                SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    12571258            else
     
    12591260
    12601261            hOldFont=(HFONT)SelectObject(hdc,hFont);
    1261             DrawText(hdc,pWindowInfo->pChildInfo[i].caption,-1,&rect,i4|i2);
     1262            DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2);
    12621263            SelectObject(hdc,hOldFont);
    12631264        }
    12641265
    1265         else if(pWindowInfo->pChildInfo[i].Control==CT_GROUPBOX){
     1266        else if(pChildInfo->Control==CT_GROUPBOX){
    12661267            ///////////////////////////////////
    12671268            // グループ ボックス コントロール
    12681269
    12691270            hOldFont=(HFONT)SelectObject(hdc,hFont);
    1270             GetTextExtentPoint32(hdc,pWindowInfo->pChildInfo[i].caption,lstrlen(pWindowInfo->pChildInfo[i].caption),&size2);
     1271            GetTextExtentPoint32(hdc,pChildInfo->caption,lstrlen(pChildInfo->caption),&size2);
    12711272
    12721273            //枠を描画
     
    12781279
    12791280            //ビットを考慮してBS_CENTERを最初に検討する
    1280             if((pWindowInfo->pChildInfo[i].style&BS_CENTER)==BS_CENTER){
     1281            if((pChildInfo->style&BS_CENTER)==BS_CENTER){
    12811282                rect.left=pos.x+(size.cx/2)-(size2.cx/2)-3;
    12821283                rect.right=rect.left+size2.cx+4;
    12831284            }
    1284             else if(pWindowInfo->pChildInfo[i].style&BS_RIGHT){
     1285            else if(pChildInfo->style&BS_RIGHT){
    12851286                rect.right=pos.x+size.cx-7;
    12861287                rect.left=rect.right-size2.cx-4;
     
    12971298            DrawRectangleInClient(WndNum,rect.left,rect.top,rect.right,rect.bottom,rgb,rgb,1);
    12981299
    1299             if(!((pWindowInfo->pChildInfo[i].style&BS_ICON)||(pWindowInfo->pChildInfo[i].style&BS_BITMAP))){
     1300            if(!((pChildInfo->style&BS_ICON)||(pChildInfo->style&BS_BITMAP))){
    13001301                rect.left+=MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    13011302                rect.top+=MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     
    13061307
    13071308                //テキストを描画
    1308                 if(pWindowInfo->pChildInfo[i].style&WS_DISABLED){
     1309                if(pChildInfo->style&WS_DISABLED){
    13091310                    SetTextColor(hdc,RGB(255,255,255));
    13101311                    rc2.left=rect.left+1;
     
    13121313                    rc2.right=rect.right+1;
    13131314                    rc2.bottom=rect.bottom+1;
    1314                     DrawText(hdc,pWindowInfo->pChildInfo[i].caption,-1,&rc2,DT_SINGLELINE);
     1315                    DrawText(hdc,pChildInfo->caption,-1,&rc2,DT_SINGLELINE);
    13151316                    SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    13161317                }
     
    13181319                    SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT));
    13191320
    1320                 DrawText(hdc,pWindowInfo->pChildInfo[i].caption,-1,&rect,DT_SINGLELINE);
     1321                DrawText(hdc,pChildInfo->caption,-1,&rect,DT_SINGLELINE);
    13211322            }
    13221323            SelectObject(hdc,hOldFont);
    13231324        }
    13241325
    1325         else if(pWindowInfo->pChildInfo[i].Control==CT_HSCROLLBAR){
     1326        else if(pChildInfo->Control==CT_HSCROLLBAR){
    13261327            ////////////////////////////////////
    13271328            // 水平スクロールバー コントロール
    1328             DrawScrollBar(WndNum,pWindowInfo->pChildInfo[i].style,0,&pos,&size);
    1329         }
    1330 
    1331         else if(pWindowInfo->pChildInfo[i].Control==CT_IMAGEBOX){
     1329            DrawScrollBar(WndNum,pChildInfo->style,0,&pos,&size);
     1330        }
     1331
     1332        else if(pChildInfo->Control==CT_IMAGEBOX){
    13321333            /////////////////////
    13331334            // イメージ ボックス
    13341335            HDC memdc;
    13351336
    1336             if((pWindowInfo->pChildInfo[i].style&0x0000000F)==SS_BLACKFRAME)
     1337            if((pChildInfo->style&0x0000000F)==SS_BLACKFRAME)
    13371338                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,RGB(0,0,0),0,0);
    1338             else if((pWindowInfo->pChildInfo[i].style&0x0000000F)==SS_GRAYFRAME)
     1339            else if((pChildInfo->style&0x0000000F)==SS_GRAYFRAME)
    13391340                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,GetSysColor(COLOR_3DSHADOW),0,0);
    1340             else if((pWindowInfo->pChildInfo[i].style&0x0000000F)==SS_WHITEFRAME)
     1341            else if((pChildInfo->style&0x0000000F)==SS_WHITEFRAME)
    13411342                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,RGB(255,255,255),0,0);
    1342             else if((pWindowInfo->pChildInfo[i].style&0x0000001F)==SS_ETCHEDFRAME){
     1343            else if((pChildInfo->style&0x0000001F)==SS_ETCHEDFRAME){
    13431344                rect.left=pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
    13441345                rect.top=pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
     
    13471348                DrawEdge(hdc,&rect,EDGE_ETCHED,BF_RECT);
    13481349            }
    1349             else if((pWindowInfo->pChildInfo[i].style&0x0000000F)==SS_BLACKRECT)
     1350            else if((pChildInfo->style&0x0000000F)==SS_BLACKRECT)
    13501351                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,GetSysColor(COLOR_3DDKSHADOW),GetSysColor(COLOR_3DDKSHADOW),1);
    1351             else if((pWindowInfo->pChildInfo[i].style&0x0000000F)==SS_GRAYRECT)
     1352            else if((pChildInfo->style&0x0000000F)==SS_GRAYRECT)
    13521353                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,GetSysColor(COLOR_3DSHADOW),GetSysColor(COLOR_3DSHADOW),1);
    1353             else if((pWindowInfo->pChildInfo[i].style&0x0000000F)==SS_WHITERECT)
     1354            else if((pChildInfo->style&0x0000000F)==SS_WHITERECT)
    13541355                DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,RGB(255,255,255),RGB(255,255,255),1);
    1355             else if((pWindowInfo->pChildInfo[i].style&0x0000000F)==SS_ICON){
    1356                 if(pWindowInfo->pChildInfo[i].ImageCtrlInfo.type==IMGTYPE_FILE)
    1357                     lstrcpy(temporary,pWindowInfo->pChildInfo[i].ImageCtrlInfo.path);
     1356            else if((pChildInfo->style&0x0000000F)==SS_ICON){
     1357                if(pChildInfo->ImageCtrlInfo.type==IMGTYPE_FILE)
     1358                    lstrcpy(temporary,pChildInfo->ImageCtrlInfo.path);
    13581359                else{
    13591360                    for(i2=0;i2<ProjectInfo.res.NumberOfIconRes;i2++){
    1360                         if(lstrcmp(pWindowInfo->pChildInfo[i].ImageCtrlInfo.path,
     1361                        if(lstrcmp(pChildInfo->ImageCtrlInfo.path,
    13611362                            ProjectInfo.res.pIconResInfo[i2].IdName)==0) break;
    13621363                    }
     
    13681369                hImage=LoadImage(NULL,temporary,IMAGE_ICON,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
    13691370                if(hImage){
    1370                     pWindowInfo->pChildInfo[i].size.cx=32+(pWindowInfo->pChildInfo[i].size.cx-size.cx);
    1371                     pWindowInfo->pChildInfo[i].size.cy=32+(pWindowInfo->pChildInfo[i].size.cy-size.cy);
    1372                     pos=pWindowInfo->pChildInfo[i].pos;
    1373                     size=pWindowInfo->pChildInfo[i].size;
     1371                    pChildInfo->size.cx=32+(pChildInfo->size.cx-size.cx);
     1372                    pChildInfo->size.cy=32+(pChildInfo->size.cy-size.cy);
     1373                    pos=pChildInfo->pos;
     1374                    size=pChildInfo->size;
    13741375
    13751376                    //ExStyleによる縁を再描画
    1376                     DrawItemEdgeByExStyle(WndNum,pWindowInfo->pChildInfo[i].ExStyle,&pos,&size);
     1377                    DrawItemEdgeByExStyle(WndNum,pChildInfo->ExStyle,&pos,&size);
    13771378
    13781379                    DrawIcon(hdc,
     
    13951396                }
    13961397            }
    1397             else if((pWindowInfo->pChildInfo[i].style&0x0000000F)==SS_BITMAP){
     1398            else if((pChildInfo->style&0x0000000F)==SS_BITMAP){
    13981399                BITMAP Bitmap;
    13991400
    1400                 if(pWindowInfo->pChildInfo[i].ImageCtrlInfo.type==IMGTYPE_FILE)
    1401                     lstrcpy(temporary,pWindowInfo->pChildInfo[i].ImageCtrlInfo.path);
     1401                if(pChildInfo->ImageCtrlInfo.type==IMGTYPE_FILE)
     1402                    lstrcpy(temporary,pChildInfo->ImageCtrlInfo.path);
    14021403                else{
    14031404                    for(i2=0;i2<ProjectInfo.res.NumberOfBitmapRes;i2++){
    1404                         if(lstrcmp(pWindowInfo->pChildInfo[i].ImageCtrlInfo.path,
     1405                        if(lstrcmp(pChildInfo->ImageCtrlInfo.path,
    14051406                            ProjectInfo.res.pBitmapResInfo[i2].IdName)==0) break;
    14061407                    }
     
    14141415                    GetObject(hImage,sizeof(BITMAP),&Bitmap);
    14151416
    1416                     pWindowInfo->pChildInfo[i].size.cx=Bitmap.bmWidth+(pWindowInfo->pChildInfo[i].size.cx-size.cx);
    1417                     pWindowInfo->pChildInfo[i].size.cy=Bitmap.bmHeight+(pWindowInfo->pChildInfo[i].size.cy-size.cy);
    1418                     pos=pWindowInfo->pChildInfo[i].pos;
    1419                     size=pWindowInfo->pChildInfo[i].size;
     1417                    pChildInfo->size.cx=Bitmap.bmWidth+(pChildInfo->size.cx-size.cx);
     1418                    pChildInfo->size.cy=Bitmap.bmHeight+(pChildInfo->size.cy-size.cy);
     1419                    pos=pChildInfo->pos;
     1420                    size=pChildInfo->size;
    14201421
    14211422                    //ExStyleによる縁を再描画
    1422                     DrawItemEdgeByExStyle(WndNum,pWindowInfo->pChildInfo[i].ExStyle,&pos,&size);
     1423                    DrawItemEdgeByExStyle(WndNum,pChildInfo->ExStyle,&pos,&size);
    14231424
    14241425                    memdc=CreateCompatibleDC(hdc);
     
    14481449        }
    14491450
    1450         else if(pWindowInfo->pChildInfo[i].Control==CT_LISTBOX){
     1451        else if(pChildInfo->Control==CT_LISTBOX){
    14511452            /////////////////////////
    14521453            // ListBox コントロール
    14531454
    14541455            //内部
    1455             if(pWindowInfo->pChildInfo[i].style&WS_DISABLED)
     1456            if(pChildInfo->style&WS_DISABLED)
    14561457                rgb=GetSysColor(COLOR_3DFACE);
    14571458            else rgb=GetSysColor(COLOR_WINDOW);
     
    14611462                rgb,rgb,1);
    14621463
    1463             if(pWindowInfo->pChildInfo[i].style&LBS_DISABLENOSCROLL)
    1464                 DrawWindowScrollBar(WndNum,pWindowInfo->pChildInfo[i].style|WS_DISABLED,&pos,&size);
    1465         }
    1466 
    1467         else if(pWindowInfo->pChildInfo[i].Control==CT_LISTVIEW){
     1464            if(pChildInfo->style&LBS_DISABLENOSCROLL)
     1465                DrawWindowScrollBar(WndNum,pChildInfo->style|WS_DISABLED,&pos,&size);
     1466        }
     1467
     1468        else if(pChildInfo->Control==CT_LISTVIEW){
    14681469            //////////////////////////
    14691470            // ListView コントロール
    14701471
    14711472            //内部
    1472             if(pWindowInfo->pChildInfo[i].style&WS_DISABLED)
     1473            if(pChildInfo->style&WS_DISABLED)
    14731474                rgb=GetSysColor(COLOR_3DFACE);
    14741475            else rgb=GetSysColor(COLOR_WINDOW);
     
    14781479                rgb,rgb,1);
    14791480
    1480             if((pWindowInfo->pChildInfo[i].style&LVS_REPORT)&&
    1481                 (!((pWindowInfo->pChildInfo[i].style&LVS_LIST)==LVS_LIST))){
     1481            if((pChildInfo->style&LVS_REPORT)&&
     1482                (!((pChildInfo->style&LVS_LIST)==LVS_LIST))){
    14821483                //レポート ビュー
    14831484                size.cy=16;
     
    14861487        }
    14871488
    1488         else if(pWindowInfo->pChildInfo[i].Control==CT_PROGRESSBAR){
     1489        else if(pChildInfo->Control==CT_PROGRESSBAR){
    14891490            /////////////////////////////
    14901491            // ProgressBar コントロール
     
    14961497            size.cy-=2;
    14971498            rgb=GetSysColor(COLOR_ACTIVECAPTION);
    1498             if(pWindowInfo->pChildInfo[i].style&PBS_SMOOTH){
    1499                 if(pWindowInfo->pChildInfo[i].style&PBS_VERTICAL){
     1499            if(pChildInfo->style&PBS_SMOOTH){
     1500                if(pChildInfo->style&PBS_VERTICAL){
    15001501                    pos.y+=(long)((double)size.cy*0.3);
    15011502                    DrawRectangleInClient(WndNum,
     
    15121513            }
    15131514            else{
    1514                 if(pWindowInfo->pChildInfo[i].style&PBS_VERTICAL){
     1515                if(pChildInfo->style&PBS_VERTICAL){
    15151516                    pos.y+=(long)((double)size.cy*0.3);
    15161517                    i3=(size.cx*2)/3;
     
    15361537        }
    15371538
    1538         else if(pWindowInfo->pChildInfo[i].Control==CT_RADIOBUTTON){
     1539        else if(pChildInfo->Control==CT_RADIOBUTTON){
    15391540            /////////////////////////////
    15401541            // RadioButton コントロール
    15411542
    1542             if(pWindowInfo->pChildInfo[i].style&BS_PUSHLIKE){
     1543            if(pChildInfo->style&BS_PUSHLIKE){
    15431544                //ボタンの縁を描画
    15441545                DrawButtonEdge(WndNum,&pos,&size);
     
    15481549                size2.cx=12;
    15491550                size2.cy=12;
    1550                 if(pWindowInfo->pChildInfo[i].style&BS_LEFTTEXT)
     1551                if(pChildInfo->style&BS_LEFTTEXT)
    15511552                    pos2.x=pos.x+size.cx-size2.cx;
    15521553                else pos2.x=pos.x+1;
    1553                 if((pWindowInfo->pChildInfo[i].style&BS_VCENTER)==BS_VCENTER||
    1554                     (pWindowInfo->pChildInfo[i].style&BS_VCENTER)==0)
     1554                if((pChildInfo->style&BS_VCENTER)==BS_VCENTER||
     1555                    (pChildInfo->style&BS_VCENTER)==0)
    15551556                    pos2.y=pos.y+(size.cy/2)-(size2.cy/2);
    1556                 else if(pWindowInfo->pChildInfo[i].style&BS_TOP)
     1557                else if(pChildInfo->style&BS_TOP)
    15571558                    pos2.y=pos.y+1;
    1558                 else if(pWindowInfo->pChildInfo[i].style&BS_BOTTOM)
     1559                else if(pChildInfo->style&BS_BOTTOM)
    15591560                    pos2.y=pos.y+size.cy-size2.cy-1;
    15601561
     
    15811582                    //内部
    15821583                    else if(rgb==RGB(255,255,255)){
    1583                         if(pWindowInfo->pChildInfo[i].style&WS_DISABLED) rgb=GetSysColor(COLOR_3DFACE);
     1584                        if(pChildInfo->style&WS_DISABLED) rgb=GetSysColor(COLOR_3DFACE);
    15841585                    }
    15851586
     
    15991600                GlobalFree(pByte2);
    16001601
    1601                 if(!(pWindowInfo->pChildInfo[i].style&BS_LEFTTEXT)) pos.x+=17;
     1602                if(!(pChildInfo->style&BS_LEFTTEXT)) pos.x+=17;
    16021603                else pos.x++;
    16031604                size.cx-=17;
    16041605            }
    16051606
    1606             if(!(pWindowInfo->pChildInfo[i].style&(BS_ICON|BS_BITMAP))){
     1607            if(!(pChildInfo->style&(BS_ICON|BS_BITMAP))){
    16071608                //キャプション テキスト
    16081609                rect.left=pos.x+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.x;
     
    16111612                rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y;
    16121613
    1613                 if(pWindowInfo->pChildInfo[i].style&BS_MULTILINE) i4=0;
     1614                if(pChildInfo->style&BS_MULTILINE) i4=0;
    16141615                else i4=DT_SINGLELINE;
    16151616
    16161617                //ビットを考慮してBS_CENTERを最初に比較する
    1617                 if((pWindowInfo->pChildInfo[i].style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
    1618                 else if(pWindowInfo->pChildInfo[i].style&BS_LEFT) i2=DT_LEFT;
    1619                 else if(pWindowInfo->pChildInfo[i].style&BS_RIGHT) i2=DT_RIGHT;
     1618                if((pChildInfo->style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;
     1619                else if(pChildInfo->style&BS_LEFT) i2=DT_LEFT;
     1620                else if(pChildInfo->style&BS_RIGHT) i2=DT_RIGHT;
    16201621                else i2=DT_LEFT;
    16211622
    16221623                //ビットを考慮してBS_VCENTERを最初に比較する
    1623                 if((pWindowInfo->pChildInfo[i].style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
    1624                 else if(pWindowInfo->pChildInfo[i].style&BS_TOP) i3=DT_TOP;
    1625                 else if(pWindowInfo->pChildInfo[i].style&BS_BOTTOM) i3=DT_BOTTOM;
     1624                if((pChildInfo->style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;
     1625                else if(pChildInfo->style&BS_TOP) i3=DT_TOP;
     1626                else if(pChildInfo->style&BS_BOTTOM) i3=DT_BOTTOM;
    16261627                else i3=DT_VCENTER;
    16271628
    16281629                hOldFont=(HFONT)SelectObject(hdc,hFont);
    1629                 if(pWindowInfo->pChildInfo[i].style&WS_DISABLED){
     1630                if(pChildInfo->style&WS_DISABLED){
    16301631                    SetTextColor(hdc,RGB(255,255,255));
    16311632                    rc2.left=rect.left+1;
     
    16331634                    rc2.right=rect.right+1;
    16341635                    rc2.bottom=rect.bottom+1;
    1635                     DrawText(hdc,pWindowInfo->pChildInfo[i].caption,-1,&rc2,i4|i2|i3);
     1636                    DrawText(hdc,pChildInfo->caption,-1,&rc2,i4|i2|i3);
    16361637                    SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    16371638                }
    16381639                else SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT));
    16391640
    1640                 DrawText(hdc,pWindowInfo->pChildInfo[i].caption,-1,&rect,i4|i2|i3);
     1641                DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2|i3);
    16411642                SelectObject(hdc,hOldFont);
    16421643            }
    16431644        }
    16441645
    1645         else if(pWindowInfo->pChildInfo[i].Control==CT_STATIC){
     1646        else if(pChildInfo->Control==CT_STATIC){
    16461647            ////////////////////////
    16471648            // Static コントロール
     
    16541655
    16551656            //ビットを考慮してSS_LEFTを最後に検討する
    1656             if(pWindowInfo->pChildInfo[i].style&SS_CENTER) i2=DT_CENTER;
    1657             else if(pWindowInfo->pChildInfo[i].style&SS_RIGHT) i2=DT_RIGHT;
     1657            if(pChildInfo->style&SS_CENTER) i2=DT_CENTER;
     1658            else if(pChildInfo->style&SS_RIGHT) i2=DT_RIGHT;
    16581659            else i2=DT_LEFT;
    16591660
    16601661            hOldFont=(HFONT)SelectObject(hdc,hFont);
    1661             if(pWindowInfo->pChildInfo[i].style&WS_DISABLED){
     1662            if(pChildInfo->style&WS_DISABLED){
    16621663                SetTextColor(hdc,RGB(255,255,255));
    16631664                rc2.left=rect.left+1;
     
    16651666                rc2.right=rect.right+1;
    16661667                rc2.bottom=rect.bottom+1;
    1667                 DrawText(hdc,pWindowInfo->pChildInfo[i].caption,-1,&rc2,i2);
     1668                DrawText(hdc,pChildInfo->caption,-1,&rc2,i2);
    16681669                SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT));
    16691670            }
     
    16721673
    16731674            //折り返すかどうか
    1674             if(!(pWindowInfo->pChildInfo[i].style&SS_LEFTNOWORDWRAP)){
     1675            if(!(pChildInfo->style&SS_LEFTNOWORDWRAP)){
    16751676                i2|=DT_WORDBREAK;
    16761677            }
    16771678
    1678             DrawText(hdc,pWindowInfo->pChildInfo[i].caption,-1,&rect,i2);
     1679            DrawText(hdc,pChildInfo->caption,-1,&rect,i2);
    16791680            SelectObject(hdc,hOldFont);
    16801681        }
    16811682
    1682         else if(pWindowInfo->pChildInfo[i].Control==CT_TRACKBAR){
     1683        else if(pChildInfo->Control==CT_TRACKBAR){
    16831684            //////////////////////////
    16841685            // TrackBar コントロール
    16851686
    1686             if(pWindowInfo->pChildInfo[i].style&TBS_VERT){
     1687            if(pChildInfo->style&TBS_VERT){
    16871688                pos.x+=2;
    16881689                size.cx-=2;
     
    17181719        }
    17191720
    1720         else if(pWindowInfo->pChildInfo[i].Control==CT_TREEVIEW){
     1721        else if(pChildInfo->Control==CT_TREEVIEW){
    17211722            //////////////////////////
    17221723            // TreeView コントロール
    17231724
    17241725            //内部
    1725             if(pWindowInfo->pChildInfo[i].style&WS_DISABLED)
     1726            if(pChildInfo->style&WS_DISABLED)
    17261727                rgb=GetSysColor(COLOR_3DFACE);
    17271728            else rgb=GetSysColor(COLOR_WINDOW);
     
    17321733        }
    17331734
    1734         else if(pWindowInfo->pChildInfo[i].Control==CT_UPDOWN){
     1735        else if(pChildInfo->Control==CT_UPDOWN){
    17351736            ///////////////////////////////
    17361737            // アップ ダウン コントロール
    1737             if(pWindowInfo->pChildInfo[i].style&UDS_HORZ)
    1738                 DrawUpDownControl(WndNum,pWindowInfo->pChildInfo[i].style,0,&pos,&size);
    1739             else DrawUpDownControl(WndNum,pWindowInfo->pChildInfo[i].style,1,&pos,&size);
    1740         }
    1741 
    1742         else if(pWindowInfo->pChildInfo[i].Control==CT_VSCROLLBAR){
     1738            if(pChildInfo->style&UDS_HORZ)
     1739                DrawUpDownControl(WndNum,pChildInfo->style,0,&pos,&size);
     1740            else DrawUpDownControl(WndNum,pChildInfo->style,1,&pos,&size);
     1741        }
     1742
     1743        else if(pChildInfo->Control==CT_VSCROLLBAR){
    17431744            ////////////////////////////////////
    17441745            // 垂直スクロールバー コントロール
    1745             DrawScrollBar(WndNum,pWindowInfo->pChildInfo[i].style,1,&pos,&size);
     1746            DrawScrollBar(WndNum,pChildInfo->style,1,&pos,&size);
    17461747        }
    17471748    }
Note: See TracChangeset for help on using the changeset viewer.