Changeset 616 in dev for trunk/ab5.0/abdev/abdev/DrawWindow.cpp
- Timestamp:
- May 19, 2008, 3:03:33 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/DrawWindow.cpp
r615 r616 1017 1017 //子ウィンドウ(ダイアログアイテム)を描画 1018 1018 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; 1022 1023 1023 1024 //ExStyleによる縁を描画 1024 DrawItemEdgeByExStyle(WndNum,p WindowInfo->pChildInfo[i].ExStyle,&pos,&size);1025 1026 if(p WindowInfo->pChildInfo[i].Control==CT_BUTTON){1025 DrawItemEdgeByExStyle(WndNum,pChildInfo->ExStyle,&pos,&size); 1026 1027 if(pChildInfo->Control==CT_BUTTON){ 1027 1028 //////////////////////// 1028 1029 // Button コントロール 1029 1030 1030 if((p WindowInfo->pChildInfo[i].style&0x0000000F)==BS_DEFPUSHBUTTON){1031 if((pChildInfo->style&0x0000000F)==BS_DEFPUSHBUTTON){ 1031 1032 //標準のボタンの場合(黒枠描画) 1032 1033 DrawRectangleInClient(WndNum, … … 1043 1044 DrawButtonEdge(WndNum,&pos,&size); 1044 1045 1045 if(!(p WindowInfo->pChildInfo[i].style&(BS_ICON|BS_BITMAP))){1046 if(!(pChildInfo->style&(BS_ICON|BS_BITMAP))){ 1046 1047 //キャプション テキスト 1047 1048 … … 1051 1052 rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y; 1052 1053 1053 if(p WindowInfo->pChildInfo[i].style&BS_MULTILINE) i4=0;1054 if(pChildInfo->style&BS_MULTILINE) i4=0; 1054 1055 else i4=DT_SINGLELINE; 1055 1056 1056 1057 //ビットを考慮してBS_CENTERを最初に比較する 1057 if((p WindowInfo->pChildInfo[i].style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;1058 else if(p WindowInfo->pChildInfo[i].style&BS_LEFT) i2=DT_LEFT;1059 else if(p WindowInfo->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; 1060 1061 else i2=DT_CENTER; 1061 1062 1062 1063 //ビットを考慮してBS_VCENTERを最初に比較する 1063 if((p WindowInfo->pChildInfo[i].style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;1064 else if(p WindowInfo->pChildInfo[i].style&BS_TOP) i3=DT_TOP;1065 else if(p WindowInfo->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; 1066 1067 else i3=DT_VCENTER; 1067 1068 1068 1069 hOldFont=(HFONT)SelectObject(hdc,hFont); 1069 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED){1070 if(pChildInfo->style&WS_DISABLED){ 1070 1071 SetTextColor(hdc,RGB(255,255,255)); 1071 1072 rc2.left=rect.left+1; … … 1073 1074 rc2.right=rect.right+1; 1074 1075 rc2.bottom=rect.bottom+1; 1075 DrawText(hdc,p WindowInfo->pChildInfo[i].caption,-1,&rc2,i4|i2|i3);1076 DrawText(hdc,pChildInfo->caption,-1,&rc2,i4|i2|i3); 1076 1077 SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT)); 1077 1078 } 1078 1079 else SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT)); 1079 1080 1080 DrawText(hdc,p WindowInfo->pChildInfo[i].caption,-1,&rect,i4|i2|i3);1081 DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2|i3); 1081 1082 SelectObject(hdc,hOldFont); 1082 1083 } 1083 1084 } 1084 else if(p WindowInfo->pChildInfo[i].Control==CT_CHECKBOX){1085 else if(pChildInfo->Control==CT_CHECKBOX){ 1085 1086 ////////////////////////// 1086 1087 // CheckBox コントロール 1087 1088 1088 if(p WindowInfo->pChildInfo[i].style&BS_PUSHLIKE){1089 if(pChildInfo->style&BS_PUSHLIKE){ 1089 1090 //ボタンの縁を描画 1090 1091 DrawButtonEdge(WndNum,&pos,&size); … … 1094 1095 size2.cx=13; 1095 1096 size2.cy=13; 1096 if(p WindowInfo->pChildInfo[i].style&BS_LEFTTEXT)1097 if(pChildInfo->style&BS_LEFTTEXT) 1097 1098 pos2.x=pos.x+size.cx-size2.cx; 1098 1099 else pos2.x=pos.x; 1099 if((p WindowInfo->pChildInfo[i].style&BS_VCENTER)==BS_VCENTER||1100 (p WindowInfo->pChildInfo[i].style&BS_VCENTER)==0)1100 if((pChildInfo->style&BS_VCENTER)==BS_VCENTER|| 1101 (pChildInfo->style&BS_VCENTER)==0) 1101 1102 pos2.y=pos.y+(size.cy/2)-(size2.cy/2); 1102 else if(p WindowInfo->pChildInfo[i].style&BS_TOP)1103 else if(pChildInfo->style&BS_TOP) 1103 1104 pos2.y=pos.y+1; 1104 else if(p WindowInfo->pChildInfo[i].style&BS_BOTTOM)1105 else if(pChildInfo->style&BS_BOTTOM) 1105 1106 pos2.y=pos.y+size.cy-size2.cy-1; 1106 1107 DrawItemEdgeByExStyle(WndNum,WS_EX_CLIENTEDGE,&pos2,&size2); 1107 1108 1108 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED)1109 if(pChildInfo->style&WS_DISABLED) 1109 1110 rgb=GetSysColor(COLOR_3DFACE); 1110 1111 else rgb=GetSysColor(COLOR_WINDOW); … … 1112 1113 pos2.x+size2.cx, pos2.y+size2.cy, 1113 1114 rgb,rgb,1); 1114 if(!(p WindowInfo->pChildInfo[i].style&BS_LEFTTEXT)) pos.x+=17;1115 if(!(pChildInfo->style&BS_LEFTTEXT)) pos.x+=17; 1115 1116 else pos.x++; 1116 1117 size.cx-=17; 1117 1118 } 1118 1119 1119 if(!(p WindowInfo->pChildInfo[i].style&(BS_ICON|BS_BITMAP))){1120 if(!(pChildInfo->style&(BS_ICON|BS_BITMAP))){ 1120 1121 //キャプション テキスト 1121 1122 rect.left=pos.x+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.x; … … 1124 1125 rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y; 1125 1126 1126 if(p WindowInfo->pChildInfo[i].style&BS_MULTILINE) i4=0;1127 if(pChildInfo->style&BS_MULTILINE) i4=0; 1127 1128 else i4=DT_SINGLELINE; 1128 1129 1129 1130 //ビットを考慮してBS_CENTERを最初に比較する 1130 if((p WindowInfo->pChildInfo[i].style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;1131 else if(p WindowInfo->pChildInfo[i].style&BS_LEFT) i2=DT_LEFT;1132 else if(p WindowInfo->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; 1133 1134 else i2=DT_LEFT; 1134 1135 1135 1136 //ビットを考慮してBS_VCENTERを最初に比較する 1136 if((p WindowInfo->pChildInfo[i].style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;1137 else if(p WindowInfo->pChildInfo[i].style&BS_TOP) i3=DT_TOP;1138 else if(p WindowInfo->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; 1139 1140 else i3=DT_VCENTER; 1140 1141 1141 1142 hOldFont=(HFONT)SelectObject(hdc,hFont); 1142 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED){1143 if(pChildInfo->style&WS_DISABLED){ 1143 1144 SetTextColor(hdc,RGB(255,255,255)); 1144 1145 rc2.left=rect.left+1; … … 1146 1147 rc2.right=rect.right+1; 1147 1148 rc2.bottom=rect.bottom+1; 1148 DrawText(hdc,p WindowInfo->pChildInfo[i].caption,-1,&rc2,i4|i2|i3);1149 DrawText(hdc,pChildInfo->caption,-1,&rc2,i4|i2|i3); 1149 1150 SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT)); 1150 1151 } 1151 1152 else SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT)); 1152 1153 1153 DrawText(hdc,p WindowInfo->pChildInfo[i].caption,-1,&rect,i4|i2|i3);1154 DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2|i3); 1154 1155 SelectObject(hdc,hOldFont); 1155 1156 } 1156 1157 } 1157 else if(p WindowInfo->pChildInfo[i].Control==CT_COMBOBOX){1158 else if(pChildInfo->Control==CT_COMBOBOX){ 1158 1159 ////////////////////////// 1159 1160 // ComboBox コントロール … … 1165 1166 1166 1167 //内部 1167 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED)1168 if(pChildInfo->style&WS_DISABLED) 1168 1169 rgb=GetSysColor(COLOR_3DFACE); 1169 1170 else rgb=GetSysColor(COLOR_WINDOW); … … 1173 1174 rgb,rgb,1); 1174 1175 1175 if((p WindowInfo->pChildInfo[i].style&0x000F)==CBS_SIMPLE){1176 if((pChildInfo->style&0x000F)==CBS_SIMPLE){ 1176 1177 pos.y+=20; 1177 1178 size.cy-=20; … … 1199 1200 1200 1201 pos2.x--; 1201 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED){1202 if(pChildInfo->style&WS_DISABLED){ 1202 1203 hPen=CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DHIGHLIGHT)); 1203 1204 hOldPen=(HPEN)SelectObject(hdc,hPen); … … 1225 1226 } 1226 1227 } 1227 else if(p WindowInfo->pChildInfo[i].Control==CT_EDIT){1228 else if(pChildInfo->Control==CT_EDIT){ 1228 1229 ////////////////////// 1229 1230 // Edit コントロール 1230 1231 1231 1232 //内部 1232 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED||pWindowInfo->pChildInfo[i].style&ES_READONLY)1233 if(pChildInfo->style&WS_DISABLED||pChildInfo->style&ES_READONLY) 1233 1234 rgb=GetSysColor(COLOR_3DFACE); 1234 1235 else rgb=GetSysColor(COLOR_WINDOW); … … 1244 1245 rect.bottom=pos.y+size.cy-1+MdiInfo[WndNum].MdiRadInfo->ClientPos.y; 1245 1246 1246 if(p WindowInfo->pChildInfo[i].style&ES_MULTILINE) i4=0;1247 if(pChildInfo->style&ES_MULTILINE) i4=0; 1247 1248 else i4=DT_SINGLELINE; 1248 1249 1249 1250 //ビットを考慮してES_LEFTを最後に検討する 1250 if(p WindowInfo->pChildInfo[i].style&ES_CENTER) i2=DT_CENTER;1251 else if(p WindowInfo->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; 1252 1253 else i2=DT_LEFT; 1253 1254 1254 1255 //文字色を設定 1255 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED)1256 if(pChildInfo->style&WS_DISABLED) 1256 1257 SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT)); 1257 1258 else … … 1259 1260 1260 1261 hOldFont=(HFONT)SelectObject(hdc,hFont); 1261 DrawText(hdc,p WindowInfo->pChildInfo[i].caption,-1,&rect,i4|i2);1262 DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2); 1262 1263 SelectObject(hdc,hOldFont); 1263 1264 } 1264 1265 1265 else if(p WindowInfo->pChildInfo[i].Control==CT_GROUPBOX){1266 else if(pChildInfo->Control==CT_GROUPBOX){ 1266 1267 /////////////////////////////////// 1267 1268 // グループ ボックス コントロール 1268 1269 1269 1270 hOldFont=(HFONT)SelectObject(hdc,hFont); 1270 GetTextExtentPoint32(hdc,p WindowInfo->pChildInfo[i].caption,lstrlen(pWindowInfo->pChildInfo[i].caption),&size2);1271 GetTextExtentPoint32(hdc,pChildInfo->caption,lstrlen(pChildInfo->caption),&size2); 1271 1272 1272 1273 //枠を描画 … … 1278 1279 1279 1280 //ビットを考慮してBS_CENTERを最初に検討する 1280 if((p WindowInfo->pChildInfo[i].style&BS_CENTER)==BS_CENTER){1281 if((pChildInfo->style&BS_CENTER)==BS_CENTER){ 1281 1282 rect.left=pos.x+(size.cx/2)-(size2.cx/2)-3; 1282 1283 rect.right=rect.left+size2.cx+4; 1283 1284 } 1284 else if(p WindowInfo->pChildInfo[i].style&BS_RIGHT){1285 else if(pChildInfo->style&BS_RIGHT){ 1285 1286 rect.right=pos.x+size.cx-7; 1286 1287 rect.left=rect.right-size2.cx-4; … … 1297 1298 DrawRectangleInClient(WndNum,rect.left,rect.top,rect.right,rect.bottom,rgb,rgb,1); 1298 1299 1299 if(!((p WindowInfo->pChildInfo[i].style&BS_ICON)||(pWindowInfo->pChildInfo[i].style&BS_BITMAP))){1300 if(!((pChildInfo->style&BS_ICON)||(pChildInfo->style&BS_BITMAP))){ 1300 1301 rect.left+=MdiInfo[WndNum].MdiRadInfo->ClientPos.x; 1301 1302 rect.top+=MdiInfo[WndNum].MdiRadInfo->ClientPos.y; … … 1306 1307 1307 1308 //テキストを描画 1308 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED){1309 if(pChildInfo->style&WS_DISABLED){ 1309 1310 SetTextColor(hdc,RGB(255,255,255)); 1310 1311 rc2.left=rect.left+1; … … 1312 1313 rc2.right=rect.right+1; 1313 1314 rc2.bottom=rect.bottom+1; 1314 DrawText(hdc,p WindowInfo->pChildInfo[i].caption,-1,&rc2,DT_SINGLELINE);1315 DrawText(hdc,pChildInfo->caption,-1,&rc2,DT_SINGLELINE); 1315 1316 SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT)); 1316 1317 } … … 1318 1319 SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT)); 1319 1320 1320 DrawText(hdc,p WindowInfo->pChildInfo[i].caption,-1,&rect,DT_SINGLELINE);1321 DrawText(hdc,pChildInfo->caption,-1,&rect,DT_SINGLELINE); 1321 1322 } 1322 1323 SelectObject(hdc,hOldFont); 1323 1324 } 1324 1325 1325 else if(p WindowInfo->pChildInfo[i].Control==CT_HSCROLLBAR){1326 else if(pChildInfo->Control==CT_HSCROLLBAR){ 1326 1327 //////////////////////////////////// 1327 1328 // 水平スクロールバー コントロール 1328 DrawScrollBar(WndNum,p WindowInfo->pChildInfo[i].style,0,&pos,&size);1329 } 1330 1331 else if(p WindowInfo->pChildInfo[i].Control==CT_IMAGEBOX){1329 DrawScrollBar(WndNum,pChildInfo->style,0,&pos,&size); 1330 } 1331 1332 else if(pChildInfo->Control==CT_IMAGEBOX){ 1332 1333 ///////////////////// 1333 1334 // イメージ ボックス 1334 1335 HDC memdc; 1335 1336 1336 if((p WindowInfo->pChildInfo[i].style&0x0000000F)==SS_BLACKFRAME)1337 if((pChildInfo->style&0x0000000F)==SS_BLACKFRAME) 1337 1338 DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,RGB(0,0,0),0,0); 1338 else if((p WindowInfo->pChildInfo[i].style&0x0000000F)==SS_GRAYFRAME)1339 else if((pChildInfo->style&0x0000000F)==SS_GRAYFRAME) 1339 1340 DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,GetSysColor(COLOR_3DSHADOW),0,0); 1340 else if((p WindowInfo->pChildInfo[i].style&0x0000000F)==SS_WHITEFRAME)1341 else if((pChildInfo->style&0x0000000F)==SS_WHITEFRAME) 1341 1342 DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,RGB(255,255,255),0,0); 1342 else if((p WindowInfo->pChildInfo[i].style&0x0000001F)==SS_ETCHEDFRAME){1343 else if((pChildInfo->style&0x0000001F)==SS_ETCHEDFRAME){ 1343 1344 rect.left=pos.x+MdiInfo[WndNum].MdiRadInfo->ClientPos.x; 1344 1345 rect.top=pos.y+MdiInfo[WndNum].MdiRadInfo->ClientPos.y; … … 1347 1348 DrawEdge(hdc,&rect,EDGE_ETCHED,BF_RECT); 1348 1349 } 1349 else if((p WindowInfo->pChildInfo[i].style&0x0000000F)==SS_BLACKRECT)1350 else if((pChildInfo->style&0x0000000F)==SS_BLACKRECT) 1350 1351 DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,GetSysColor(COLOR_3DDKSHADOW),GetSysColor(COLOR_3DDKSHADOW),1); 1351 else if((p WindowInfo->pChildInfo[i].style&0x0000000F)==SS_GRAYRECT)1352 else if((pChildInfo->style&0x0000000F)==SS_GRAYRECT) 1352 1353 DrawRectangleInClient(WndNum,pos.x,pos.y,pos.x+size.cx,pos.y+size.cy,GetSysColor(COLOR_3DSHADOW),GetSysColor(COLOR_3DSHADOW),1); 1353 else if((p WindowInfo->pChildInfo[i].style&0x0000000F)==SS_WHITERECT)1354 else if((pChildInfo->style&0x0000000F)==SS_WHITERECT) 1354 1355 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((p WindowInfo->pChildInfo[i].style&0x0000000F)==SS_ICON){1356 if(p WindowInfo->pChildInfo[i].ImageCtrlInfo.type==IMGTYPE_FILE)1357 lstrcpy(temporary,p WindowInfo->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); 1358 1359 else{ 1359 1360 for(i2=0;i2<ProjectInfo.res.NumberOfIconRes;i2++){ 1360 if(lstrcmp(p WindowInfo->pChildInfo[i].ImageCtrlInfo.path,1361 if(lstrcmp(pChildInfo->ImageCtrlInfo.path, 1361 1362 ProjectInfo.res.pIconResInfo[i2].IdName)==0) break; 1362 1363 } … … 1368 1369 hImage=LoadImage(NULL,temporary,IMAGE_ICON,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE); 1369 1370 if(hImage){ 1370 p WindowInfo->pChildInfo[i].size.cx=32+(pWindowInfo->pChildInfo[i].size.cx-size.cx);1371 p WindowInfo->pChildInfo[i].size.cy=32+(pWindowInfo->pChildInfo[i].size.cy-size.cy);1372 pos=p WindowInfo->pChildInfo[i].pos;1373 size=p WindowInfo->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; 1374 1375 1375 1376 //ExStyleによる縁を再描画 1376 DrawItemEdgeByExStyle(WndNum,p WindowInfo->pChildInfo[i].ExStyle,&pos,&size);1377 DrawItemEdgeByExStyle(WndNum,pChildInfo->ExStyle,&pos,&size); 1377 1378 1378 1379 DrawIcon(hdc, … … 1395 1396 } 1396 1397 } 1397 else if((p WindowInfo->pChildInfo[i].style&0x0000000F)==SS_BITMAP){1398 else if((pChildInfo->style&0x0000000F)==SS_BITMAP){ 1398 1399 BITMAP Bitmap; 1399 1400 1400 if(p WindowInfo->pChildInfo[i].ImageCtrlInfo.type==IMGTYPE_FILE)1401 lstrcpy(temporary,p WindowInfo->pChildInfo[i].ImageCtrlInfo.path);1401 if(pChildInfo->ImageCtrlInfo.type==IMGTYPE_FILE) 1402 lstrcpy(temporary,pChildInfo->ImageCtrlInfo.path); 1402 1403 else{ 1403 1404 for(i2=0;i2<ProjectInfo.res.NumberOfBitmapRes;i2++){ 1404 if(lstrcmp(p WindowInfo->pChildInfo[i].ImageCtrlInfo.path,1405 if(lstrcmp(pChildInfo->ImageCtrlInfo.path, 1405 1406 ProjectInfo.res.pBitmapResInfo[i2].IdName)==0) break; 1406 1407 } … … 1414 1415 GetObject(hImage,sizeof(BITMAP),&Bitmap); 1415 1416 1416 p WindowInfo->pChildInfo[i].size.cx=Bitmap.bmWidth+(pWindowInfo->pChildInfo[i].size.cx-size.cx);1417 p WindowInfo->pChildInfo[i].size.cy=Bitmap.bmHeight+(pWindowInfo->pChildInfo[i].size.cy-size.cy);1418 pos=p WindowInfo->pChildInfo[i].pos;1419 size=p WindowInfo->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; 1420 1421 1421 1422 //ExStyleによる縁を再描画 1422 DrawItemEdgeByExStyle(WndNum,p WindowInfo->pChildInfo[i].ExStyle,&pos,&size);1423 DrawItemEdgeByExStyle(WndNum,pChildInfo->ExStyle,&pos,&size); 1423 1424 1424 1425 memdc=CreateCompatibleDC(hdc); … … 1448 1449 } 1449 1450 1450 else if(p WindowInfo->pChildInfo[i].Control==CT_LISTBOX){1451 else if(pChildInfo->Control==CT_LISTBOX){ 1451 1452 ///////////////////////// 1452 1453 // ListBox コントロール 1453 1454 1454 1455 //内部 1455 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED)1456 if(pChildInfo->style&WS_DISABLED) 1456 1457 rgb=GetSysColor(COLOR_3DFACE); 1457 1458 else rgb=GetSysColor(COLOR_WINDOW); … … 1461 1462 rgb,rgb,1); 1462 1463 1463 if(p WindowInfo->pChildInfo[i].style&LBS_DISABLENOSCROLL)1464 DrawWindowScrollBar(WndNum,p WindowInfo->pChildInfo[i].style|WS_DISABLED,&pos,&size);1465 } 1466 1467 else if(p WindowInfo->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){ 1468 1469 ////////////////////////// 1469 1470 // ListView コントロール 1470 1471 1471 1472 //内部 1472 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED)1473 if(pChildInfo->style&WS_DISABLED) 1473 1474 rgb=GetSysColor(COLOR_3DFACE); 1474 1475 else rgb=GetSysColor(COLOR_WINDOW); … … 1478 1479 rgb,rgb,1); 1479 1480 1480 if((p WindowInfo->pChildInfo[i].style&LVS_REPORT)&&1481 (!((p WindowInfo->pChildInfo[i].style&LVS_LIST)==LVS_LIST))){1481 if((pChildInfo->style&LVS_REPORT)&& 1482 (!((pChildInfo->style&LVS_LIST)==LVS_LIST))){ 1482 1483 //レポート ビュー 1483 1484 size.cy=16; … … 1486 1487 } 1487 1488 1488 else if(p WindowInfo->pChildInfo[i].Control==CT_PROGRESSBAR){1489 else if(pChildInfo->Control==CT_PROGRESSBAR){ 1489 1490 ///////////////////////////// 1490 1491 // ProgressBar コントロール … … 1496 1497 size.cy-=2; 1497 1498 rgb=GetSysColor(COLOR_ACTIVECAPTION); 1498 if(p WindowInfo->pChildInfo[i].style&PBS_SMOOTH){1499 if(p WindowInfo->pChildInfo[i].style&PBS_VERTICAL){1499 if(pChildInfo->style&PBS_SMOOTH){ 1500 if(pChildInfo->style&PBS_VERTICAL){ 1500 1501 pos.y+=(long)((double)size.cy*0.3); 1501 1502 DrawRectangleInClient(WndNum, … … 1512 1513 } 1513 1514 else{ 1514 if(p WindowInfo->pChildInfo[i].style&PBS_VERTICAL){1515 if(pChildInfo->style&PBS_VERTICAL){ 1515 1516 pos.y+=(long)((double)size.cy*0.3); 1516 1517 i3=(size.cx*2)/3; … … 1536 1537 } 1537 1538 1538 else if(p WindowInfo->pChildInfo[i].Control==CT_RADIOBUTTON){1539 else if(pChildInfo->Control==CT_RADIOBUTTON){ 1539 1540 ///////////////////////////// 1540 1541 // RadioButton コントロール 1541 1542 1542 if(p WindowInfo->pChildInfo[i].style&BS_PUSHLIKE){1543 if(pChildInfo->style&BS_PUSHLIKE){ 1543 1544 //ボタンの縁を描画 1544 1545 DrawButtonEdge(WndNum,&pos,&size); … … 1548 1549 size2.cx=12; 1549 1550 size2.cy=12; 1550 if(p WindowInfo->pChildInfo[i].style&BS_LEFTTEXT)1551 if(pChildInfo->style&BS_LEFTTEXT) 1551 1552 pos2.x=pos.x+size.cx-size2.cx; 1552 1553 else pos2.x=pos.x+1; 1553 if((p WindowInfo->pChildInfo[i].style&BS_VCENTER)==BS_VCENTER||1554 (p WindowInfo->pChildInfo[i].style&BS_VCENTER)==0)1554 if((pChildInfo->style&BS_VCENTER)==BS_VCENTER|| 1555 (pChildInfo->style&BS_VCENTER)==0) 1555 1556 pos2.y=pos.y+(size.cy/2)-(size2.cy/2); 1556 else if(p WindowInfo->pChildInfo[i].style&BS_TOP)1557 else if(pChildInfo->style&BS_TOP) 1557 1558 pos2.y=pos.y+1; 1558 else if(p WindowInfo->pChildInfo[i].style&BS_BOTTOM)1559 else if(pChildInfo->style&BS_BOTTOM) 1559 1560 pos2.y=pos.y+size.cy-size2.cy-1; 1560 1561 … … 1581 1582 //内部 1582 1583 else if(rgb==RGB(255,255,255)){ 1583 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED) rgb=GetSysColor(COLOR_3DFACE);1584 if(pChildInfo->style&WS_DISABLED) rgb=GetSysColor(COLOR_3DFACE); 1584 1585 } 1585 1586 … … 1599 1600 GlobalFree(pByte2); 1600 1601 1601 if(!(p WindowInfo->pChildInfo[i].style&BS_LEFTTEXT)) pos.x+=17;1602 if(!(pChildInfo->style&BS_LEFTTEXT)) pos.x+=17; 1602 1603 else pos.x++; 1603 1604 size.cx-=17; 1604 1605 } 1605 1606 1606 if(!(p WindowInfo->pChildInfo[i].style&(BS_ICON|BS_BITMAP))){1607 if(!(pChildInfo->style&(BS_ICON|BS_BITMAP))){ 1607 1608 //キャプション テキスト 1608 1609 rect.left=pos.x+1+MdiInfo[WndNum].MdiRadInfo->ClientPos.x; … … 1611 1612 rect.bottom=pos.y+size.cy-2+MdiInfo[WndNum].MdiRadInfo->ClientPos.y; 1612 1613 1613 if(p WindowInfo->pChildInfo[i].style&BS_MULTILINE) i4=0;1614 if(pChildInfo->style&BS_MULTILINE) i4=0; 1614 1615 else i4=DT_SINGLELINE; 1615 1616 1616 1617 //ビットを考慮してBS_CENTERを最初に比較する 1617 if((p WindowInfo->pChildInfo[i].style&BS_CENTER)==BS_CENTER) i2=DT_CENTER;1618 else if(p WindowInfo->pChildInfo[i].style&BS_LEFT) i2=DT_LEFT;1619 else if(p WindowInfo->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; 1620 1621 else i2=DT_LEFT; 1621 1622 1622 1623 //ビットを考慮してBS_VCENTERを最初に比較する 1623 if((p WindowInfo->pChildInfo[i].style&BS_VCENTER)==BS_VCENTER) i3=DT_VCENTER;1624 else if(p WindowInfo->pChildInfo[i].style&BS_TOP) i3=DT_TOP;1625 else if(p WindowInfo->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; 1626 1627 else i3=DT_VCENTER; 1627 1628 1628 1629 hOldFont=(HFONT)SelectObject(hdc,hFont); 1629 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED){1630 if(pChildInfo->style&WS_DISABLED){ 1630 1631 SetTextColor(hdc,RGB(255,255,255)); 1631 1632 rc2.left=rect.left+1; … … 1633 1634 rc2.right=rect.right+1; 1634 1635 rc2.bottom=rect.bottom+1; 1635 DrawText(hdc,p WindowInfo->pChildInfo[i].caption,-1,&rc2,i4|i2|i3);1636 DrawText(hdc,pChildInfo->caption,-1,&rc2,i4|i2|i3); 1636 1637 SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT)); 1637 1638 } 1638 1639 else SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT)); 1639 1640 1640 DrawText(hdc,p WindowInfo->pChildInfo[i].caption,-1,&rect,i4|i2|i3);1641 DrawText(hdc,pChildInfo->caption,-1,&rect,i4|i2|i3); 1641 1642 SelectObject(hdc,hOldFont); 1642 1643 } 1643 1644 } 1644 1645 1645 else if(p WindowInfo->pChildInfo[i].Control==CT_STATIC){1646 else if(pChildInfo->Control==CT_STATIC){ 1646 1647 //////////////////////// 1647 1648 // Static コントロール … … 1654 1655 1655 1656 //ビットを考慮してSS_LEFTを最後に検討する 1656 if(p WindowInfo->pChildInfo[i].style&SS_CENTER) i2=DT_CENTER;1657 else if(p WindowInfo->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; 1658 1659 else i2=DT_LEFT; 1659 1660 1660 1661 hOldFont=(HFONT)SelectObject(hdc,hFont); 1661 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED){1662 if(pChildInfo->style&WS_DISABLED){ 1662 1663 SetTextColor(hdc,RGB(255,255,255)); 1663 1664 rc2.left=rect.left+1; … … 1665 1666 rc2.right=rect.right+1; 1666 1667 rc2.bottom=rect.bottom+1; 1667 DrawText(hdc,p WindowInfo->pChildInfo[i].caption,-1,&rc2,i2);1668 DrawText(hdc,pChildInfo->caption,-1,&rc2,i2); 1668 1669 SetTextColor(hdc,GetSysColor(COLOR_GRAYTEXT)); 1669 1670 } … … 1672 1673 1673 1674 //折り返すかどうか 1674 if(!(p WindowInfo->pChildInfo[i].style&SS_LEFTNOWORDWRAP)){1675 if(!(pChildInfo->style&SS_LEFTNOWORDWRAP)){ 1675 1676 i2|=DT_WORDBREAK; 1676 1677 } 1677 1678 1678 DrawText(hdc,p WindowInfo->pChildInfo[i].caption,-1,&rect,i2);1679 DrawText(hdc,pChildInfo->caption,-1,&rect,i2); 1679 1680 SelectObject(hdc,hOldFont); 1680 1681 } 1681 1682 1682 else if(p WindowInfo->pChildInfo[i].Control==CT_TRACKBAR){1683 else if(pChildInfo->Control==CT_TRACKBAR){ 1683 1684 ////////////////////////// 1684 1685 // TrackBar コントロール 1685 1686 1686 if(p WindowInfo->pChildInfo[i].style&TBS_VERT){1687 if(pChildInfo->style&TBS_VERT){ 1687 1688 pos.x+=2; 1688 1689 size.cx-=2; … … 1718 1719 } 1719 1720 1720 else if(p WindowInfo->pChildInfo[i].Control==CT_TREEVIEW){1721 else if(pChildInfo->Control==CT_TREEVIEW){ 1721 1722 ////////////////////////// 1722 1723 // TreeView コントロール 1723 1724 1724 1725 //内部 1725 if(p WindowInfo->pChildInfo[i].style&WS_DISABLED)1726 if(pChildInfo->style&WS_DISABLED) 1726 1727 rgb=GetSysColor(COLOR_3DFACE); 1727 1728 else rgb=GetSysColor(COLOR_WINDOW); … … 1732 1733 } 1733 1734 1734 else if(p WindowInfo->pChildInfo[i].Control==CT_UPDOWN){1735 else if(pChildInfo->Control==CT_UPDOWN){ 1735 1736 /////////////////////////////// 1736 1737 // アップ ダウン コントロール 1737 if(p WindowInfo->pChildInfo[i].style&UDS_HORZ)1738 DrawUpDownControl(WndNum,p WindowInfo->pChildInfo[i].style,0,&pos,&size);1739 else DrawUpDownControl(WndNum,p WindowInfo->pChildInfo[i].style,1,&pos,&size);1740 } 1741 1742 else if(p WindowInfo->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){ 1743 1744 //////////////////////////////////// 1744 1745 // 垂直スクロールバー コントロール 1745 DrawScrollBar(WndNum,p WindowInfo->pChildInfo[i].style,1,&pos,&size);1746 DrawScrollBar(WndNum,pChildInfo->style,1,&pos,&size); 1746 1747 } 1747 1748 }
Note:
See TracChangeset
for help on using the changeset viewer.