Changeset 1111 for trunk/src/comctl32/header.c
- Timestamp:
- Oct 2, 1999, 3:58:21 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/comctl32/header.c
r1085 r1111 1 /* $Id: header.c,v 1.1 0 1999-09-28 16:36:04cbratschi Exp $ */1 /* $Id: header.c,v 1.11 1999-10-02 13:58:21 cbratschi Exp $ */ 2 2 /* 3 3 * Header control … … 18 18 * 19 19 * FIXME: 20 * - Replace DrawText32A by DrawTextEx32A(...|DT_ENDELLIPSIS) in21 * HEADER_DrawItem.22 20 * - Little flaw when drawing a bitmap on the right side of the text. 23 21 * 24 * Status: Development in progress 25 * Version: Unknown22 * Status: Development in progress, a lot to do :) 23 * Version: 5.00 (target) 26 24 */ 27 25 … … 40 38 #define DIVIDER_WIDTH 10 41 39 #define MIN_ITEMWIDTH 0 40 #define ITEM_FRAMESIZE 2 42 41 43 42 #define HEADER_GetInfoPtr(hwnd) ((HEADER_INFO *)GetWindowLongA(hwnd,0)) … … 45 44 46 45 static INT 47 HEADER_DrawItem (HWND hwnd, HDC hdc, INT iItem, BOOL bHotTrack )46 HEADER_DrawItem (HWND hwnd, HDC hdc, INT iItem, BOOL bHotTrack,BOOL bEraseTextBkgnd) 48 47 { 49 48 HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); … … 53 52 54 53 r = phdi->rect; 55 if (r.right - r.left == 0) 56 return phdi->rect.right; 57 58 if (GetWindowLongA (hwnd, GWL_STYLE) & HDS_BUTTONS) { 59 if (phdi->bDown) { 54 if (r.right - r.left == 0) return phdi->rect.right; 55 56 if (GetWindowLongA (hwnd, GWL_STYLE) & HDS_BUTTONS) 57 { 58 if (phdi->bDown) 59 { 60 60 DrawEdge (hdc, &r, BDR_RAISEDOUTER, 61 61 BF_RECT | BF_FLAT | BF_MIDDLE | BF_ADJUST); … … 66 66 DrawEdge (hdc, &r, EDGE_RAISED, 67 67 BF_RECT | BF_SOFT | BF_MIDDLE | BF_ADJUST); 68 } 69 else 68 } else 70 69 DrawEdge (hdc, &r, EDGE_ETCHED, BF_BOTTOM | BF_RIGHT | BF_ADJUST); 71 70 72 if (phdi->fmt & HDF_OWNERDRAW) { 71 if (phdi->fmt & HDF_OWNERDRAW) 72 { 73 73 DRAWITEMSTRUCT dis; 74 74 dis.CtlType = ODT_HEADER; … … 83 83 SendMessageA (GetParent (hwnd), WM_DRAWITEM, 84 84 (WPARAM)dis.CtlID, (LPARAM)&dis); 85 } 86 else{85 } else 86 { 87 87 UINT uTextJustify = DT_LEFT; 88 88 … … 92 92 uTextJustify = DT_RIGHT; 93 93 94 if ((phdi->fmt & HDF_BITMAP) && (phdi->hbm)) { 94 if ((phdi->fmt & HDF_BITMAP) && (phdi->hbm)) 95 { 95 96 BITMAP bmp; 96 97 HDC hdcBitmap; … … 102 103 rx = r.right - r.left; 103 104 104 if (ry >= bmp.bmHeight) { 105 if (ry >= bmp.bmHeight) 106 { 105 107 cy = bmp.bmHeight; 106 108 yD = r.top + (ry - bmp.bmHeight) / 2; 107 109 yS = 0; 108 } 109 else{110 } else 111 { 110 112 cy = ry; 111 113 yD = r.top; … … 114 116 } 115 117 116 if (rx >= bmp.bmWidth + 6) { 118 if (rx >= bmp.bmWidth + 6) 119 { 117 120 cx = bmp.bmWidth; 118 } 119 else{121 } else 122 { 120 123 cx = rx - 6; 121 124 } … … 130 133 131 134 132 if ((phdi->fmt & HDF_BITMAP_ON_RIGHT) && (phdi->hbm)) { 135 if ((phdi->fmt & HDF_BITMAP_ON_RIGHT) && (phdi->hbm)) 136 { 133 137 BITMAP bmp; 134 138 HDC hdcBitmap; … … 139 143 140 144 textRect = r; 141 DrawTextW (hdc, phdi->pszText, lstrlenW (phdi->pszText), 142 &textRect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_CALCRECT); 145 if (bEraseTextBkgnd) 146 { 147 HBRUSH hbrBk = GetSysColorBrush(COLOR_3DFACE); 148 149 FillRect(hdc,&textRect,hbrBk); 150 } 151 DrawTextExW(hdc,phdi->pszText,lstrlenW(phdi->pszText), 152 &textRect,DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_CALCRECT|DT_END_ELLIPSIS,NULL); 143 153 tx = textRect.right - textRect.left; 144 154 ry = r.bottom - r.top; 145 155 rx = r.right - r.left; 146 156 147 if (ry >= bmp.bmHeight) { 157 if (ry >= bmp.bmHeight) 158 { 148 159 cy = bmp.bmHeight; 149 160 yD = r.top + (ry - bmp.bmHeight) / 2; 150 161 yS = 0; 151 } 152 else{162 } else 163 { 153 164 cy = ry; 154 165 yD = r.top; … … 157 168 } 158 169 159 if (r.left + tx + bmp.bmWidth + 9 <= r.right) { 170 if (r.left + tx + bmp.bmWidth + 9 <= r.right) 171 { 160 172 cx = bmp.bmWidth; 161 173 xD = r.left + tx + 6; 162 } 163 else { 164 if (rx >= bmp.bmWidth + 6) { 174 } else 175 { 176 if (rx >= bmp.bmWidth + 6) 177 { 165 178 cx = bmp.bmWidth; 166 179 xD = r.right - bmp.bmWidth - 3; 167 180 r.right = xD - 3; 168 } 169 else{181 } else 182 { 170 183 cx = rx - 3; 171 184 xD = r.left; … … 180 193 } 181 194 182 if (phdi->fmt & HDF_IMAGE) { 195 if (phdi->fmt & HDF_IMAGE) 196 { 183 197 184 198 … … 186 200 } 187 201 188 if ((phdi->fmt & HDF_STRING) && (phdi->pszText)) { 202 if ((phdi->fmt & HDF_STRING) && (phdi->pszText)) 203 { 189 204 oldBkMode = SetBkMode(hdc, TRANSPARENT); 190 205 r.left += 3; 191 206 r.right -= 3; 192 207 SetTextColor (hdc, bHotTrack ? COLOR_HIGHLIGHT : COLOR_BTNTEXT); 193 DrawTextW (hdc, phdi->pszText, lstrlenW (phdi->pszText), 194 &r, uTextJustify|DT_VCENTER|DT_SINGLELINE); 208 if (bEraseTextBkgnd) 209 { 210 HBRUSH hbrBk = GetSysColorBrush(COLOR_3DFACE); 211 212 FillRect(hdc,&r,hbrBk); 213 } 214 DrawTextExW(hdc,phdi->pszText,lstrlenW (phdi->pszText), 215 &r,uTextJustify|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS,NULL); 195 216 if (oldBkMode != TRANSPARENT) 196 217 SetBkMode(hdc, oldBkMode); … … 203 224 204 225 static void 205 HEADER_ Refresh (HWND hwnd,HDC hdc)226 HEADER_Draw(HWND hwnd,HDC hdc) 206 227 { 207 228 HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); … … 222 243 223 244 x = rect.left; 224 for (i = 0; i < infoPtr->uNumItem; i++) { 225 x = HEADER_DrawItem (hwnd, hdc, i, FALSE); 226 } 227 228 if ((x <= rect.right) && (infoPtr->uNumItem > 0)) { 245 for (i = 0; i < infoPtr->uNumItem; i++) 246 { 247 x = HEADER_DrawItem(hwnd,hdc,i,FALSE,FALSE); 248 if (x > rect.right) 249 { 250 x = -1; 251 break; 252 } 253 } 254 255 if (x != -1 && (x <= rect.right) && (infoPtr->uNumItem > 0)) 256 { 229 257 rect.left = x; 230 258 if (GetWindowLongA (hwnd, GWL_STYLE) & HDS_BUTTONS) … … 246 274 hFont = infoPtr->hFont ? infoPtr->hFont : GetStockObject (SYSTEM_FONT); 247 275 hOldFont = SelectObject (hdc, hFont); 248 HEADER_DrawItem (hwnd, hdc, iItem, FALSE);276 HEADER_DrawItem(hwnd,hdc,iItem,FALSE,TRUE); 249 277 SelectObject (hdc, hOldFont); 250 278 } 251 279 252 253 280 static void 254 HEADER_SetItemBounds (HWND hwnd) 255 { 256 HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); 257 HEADER_ITEM *phdi; 258 RECT rect; 259 int i, x; 260 261 if (infoPtr->uNumItem == 0) 262 return; 263 264 GetClientRect (hwnd, &rect); 265 266 x = rect.left; 267 for (i = 0; i < infoPtr->uNumItem; i++) { 268 phdi = &infoPtr->items[i]; 269 phdi->rect.top = rect.top; 270 phdi->rect.bottom = rect.bottom; 271 phdi->rect.left = x; 272 phdi->rect.right = phdi->rect.left + phdi->cxy; 273 x = phdi->rect.right; 274 } 281 HEADER_Refresh(HWND hwnd) 282 { 283 HDC hdc,hdcCompatible; 284 HBITMAP bitmap,oldbmp; 285 RECT rect; 286 287 GetClientRect(hwnd,&rect); 288 hdc = GetDC(hwnd); 289 hdcCompatible = CreateCompatibleDC(hdc); 290 bitmap = CreateCompatibleBitmap(hdc,rect.right,rect.bottom); 291 oldbmp = SelectObject(hdcCompatible,bitmap); 292 HEADER_Draw(hwnd,hdcCompatible); 293 BitBlt(hdc,0,0,rect.right,rect.bottom,hdcCompatible,0,0,SRCCOPY); 294 SelectObject(hdcCompatible,oldbmp); 295 DeleteObject(bitmap); 296 DeleteDC(hdcCompatible); 297 ReleaseDC(hwnd,hdc); 298 } 299 300 static void 301 HEADER_SetItemBounds(HWND hwnd,INT start) 302 { 303 HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); 304 HEADER_ITEM *phdi; 305 RECT rect; 306 int i, x; 307 308 if (infoPtr->uNumItem == 0) return; 309 310 GetClientRect(hwnd,&rect); 311 312 x = (start > 0) ? infoPtr->items[start-1].rect.right:rect.left; 313 for (i = start;i < infoPtr->uNumItem;i++) 314 { 315 phdi = &infoPtr->items[i]; 316 phdi->rect.top = rect.top; 317 phdi->rect.bottom = rect.bottom; 318 phdi->rect.left = x; 319 phdi->rect.right = phdi->rect.left + phdi->cxy; 320 x = phdi->rect.right; 321 } 275 322 } 276 323 … … 496 543 } 497 544 545 static LRESULT 546 HEADER_ClearFilter(HWND hwnd,WPARAM wParam,LPARAM lParam) 547 { 548 //CB:todo 549 550 return 0; 551 } 498 552 499 553 static LRESULT … … 514 568 // TRACE(header, "[iItem=%d]\n", iItem); 515 569 516 if ((iItem < 0) || (iItem >= (INT)infoPtr->uNumItem)) 517 return FALSE; 518 519 if (infoPtr->uNumItem == 1) { 520 // TRACE(header, "Simple delete!\n"); 521 if (infoPtr->items[0].pszText) 522 COMCTL32_Free (infoPtr->items[0].pszText); 523 COMCTL32_Free (infoPtr->items); 524 infoPtr->items = 0; 525 infoPtr->uNumItem = 0; 526 } 527 else { 528 HEADER_ITEM *oldItems = infoPtr->items; 570 if ((iItem < 0) || (iItem >= (INT)infoPtr->uNumItem)) return FALSE; 571 572 if (infoPtr->uNumItem == 1) 573 { 574 //clear 575 if (infoPtr->items[0].pszText) COMCTL32_Free(infoPtr->items[0].pszText); 576 COMCTL32_Free (infoPtr->items); 577 infoPtr->items = 0; 578 infoPtr->uNumItem = 0; 579 580 InvalidateRect(hwnd,NULL,FALSE); 581 } else 582 { 583 HEADER_ITEM *oldItems = infoPtr->items; 529 584 // TRACE(header, "Complex delete! [iItem=%d]\n", iItem); 530 585 531 if (infoPtr->items[iItem].pszText) 532 COMCTL32_Free (infoPtr->items[iItem].pszText); 533 534 infoPtr->uNumItem--; 535 infoPtr->items = COMCTL32_Alloc (sizeof (HEADER_ITEM) * infoPtr->uNumItem); 536 /* pre delete copy */ 537 if (iItem > 0) { 538 memcpy (&infoPtr->items[0], &oldItems[0], 539 iItem * sizeof(HEADER_ITEM)); 540 } 541 542 /* post delete copy */ 543 if (iItem < infoPtr->uNumItem) { 544 memcpy (&infoPtr->items[iItem], &oldItems[iItem+1], 545 (infoPtr->uNumItem - iItem) * sizeof(HEADER_ITEM)); 546 } 547 548 COMCTL32_Free (oldItems); 549 } 550 551 HEADER_SetItemBounds (hwnd); 552 553 hdc = GetDC (hwnd); 554 HEADER_Refresh (hwnd, hdc); 555 ReleaseDC (hwnd, hdc); 586 if (infoPtr->items[iItem].pszText) COMCTL32_Free(infoPtr->items[iItem].pszText); 587 588 infoPtr->uNumItem--; 589 infoPtr->items = COMCTL32_Alloc (sizeof (HEADER_ITEM) * infoPtr->uNumItem); 590 /* pre delete copy */ 591 if (iItem > 0) 592 memcpy (&infoPtr->items[0], &oldItems[0],iItem*sizeof(HEADER_ITEM)); 593 594 /* post delete copy */ 595 if (iItem < infoPtr->uNumItem) 596 memcpy (&infoPtr->items[iItem],&oldItems[iItem+1],(infoPtr->uNumItem-iItem)*sizeof(HEADER_ITEM)); 597 598 COMCTL32_Free(oldItems); 599 600 if (iItem < infoPtr->uNumItem) HEADER_SetItemBounds(hwnd,iItem); 601 602 HEADER_Refresh(hwnd); 603 604 } 556 605 557 606 return TRUE; … … 796 845 lpItem->iOrder = phdi->iOrder; 797 846 798 HEADER_SetItemBounds (hwnd); 799 800 hdc = GetDC (hwnd); 801 HEADER_Refresh (hwnd, hdc); 802 ReleaseDC (hwnd, hdc); 847 HEADER_SetItemBounds (hwnd,nItem); 848 849 HEADER_Refresh(hwnd); 803 850 804 851 return nItem; … … 883 930 lpItem->iOrder = phdi->iOrder; 884 931 885 HEADER_SetItemBounds (hwnd); 886 887 hdc = GetDC (hwnd); 888 HEADER_Refresh (hwnd, hdc); 889 ReleaseDC (hwnd, hdc); 932 HEADER_SetItemBounds (hwnd,nItem); 933 934 HEADER_Refresh(hwnd); 890 935 891 936 return nItem; … … 997 1042 HEADER_SendHeaderNotify (hwnd, HDN_ITEMCHANGEDA, nItem); 998 1043 999 HEADER_SetItemBounds (hwnd); 1000 hdc = GetDC (hwnd); 1001 HEADER_Refresh (hwnd, hdc); 1002 ReleaseDC (hwnd, hdc); 1044 HEADER_SetItemBounds (hwnd,0); 1045 HEADER_Refresh(hwnd); 1003 1046 1004 1047 return TRUE; … … 1062 1105 HEADER_SendHeaderNotify (hwnd, HDN_ITEMCHANGEDA, nItem); 1063 1106 1064 HEADER_SetItemBounds (hwnd); 1065 hdc = GetDC (hwnd); 1066 HEADER_Refresh (hwnd, hdc); 1067 ReleaseDC (hwnd, hdc); 1107 HEADER_SetItemBounds (hwnd,0); 1108 HEADER_Refresh(hwnd); 1068 1109 1069 1110 return TRUE; … … 1098 1139 1099 1140 infoPtr->uNumItem = 0; 1100 infoPtr->nHeight = 20;1101 1141 infoPtr->hFont = 0; 1102 1142 infoPtr->items = 0; … … 1146 1186 } 1147 1187 1188 static LRESULT 1189 HEADER_EraseBackground(HWND hwnd,WPARAM wParam,LPARAM lParam) 1190 { 1191 return TRUE; 1192 } 1193 1194 static LRESULT 1195 HEADER_GetDlgCode(HWND hwnd,WPARAM wParam,LPARAM lParam) 1196 { 1197 return DLGC_WANTTAB | DLGC_WANTARROWS; 1198 } 1148 1199 1149 1200 static LRESULT … … 1190 1241 HEADER_InternalHitTest (hwnd, &pt, &flags, &nItem); 1191 1242 1192 if ((dwStyle & HDS_BUTTONS) && (flags == HHT_ONHEADER)) { 1243 if ((dwStyle & HDS_BUTTONS) && (flags == HHT_ONHEADER)) 1244 { 1193 1245 SetCapture (hwnd); 1194 1246 infoPtr->bCaptured = TRUE; … … 1205 1257 // TRACE (header, "Pressed item %d!\n", nItem); 1206 1258 } 1207 else if ((flags == HHT_ONDIVIDER) || (flags == HHT_ONDIVOPEN)) { 1208 if (!(HEADER_SendHeaderNotify (hwnd, HDN_BEGINTRACKA, nItem))) { 1259 else if ((flags == HHT_ONDIVIDER) || (flags == HHT_ONDIVOPEN)) 1260 { 1261 if (!(HEADER_SendHeaderNotify (hwnd, HDN_BEGINTRACKA, nItem))) 1262 { 1209 1263 SetCapture (hwnd); 1210 1264 infoPtr->bCaptured = TRUE; … … 1214 1268 infoPtr->xTrackOffset = infoPtr->items[nItem].rect.right - pt.x; 1215 1269 1216 if (!(dwStyle & HDS_FULLDRAG)) { 1270 if (!(dwStyle & HDS_FULLDRAG)) 1271 { 1217 1272 infoPtr->xOldTrack = infoPtr->items[nItem].rect.right; 1218 1273 hdc = GetDC (hwnd); … … 1243 1298 HEADER_InternalHitTest (hwnd, &pt, &flags, &nItem); 1244 1299 1245 if (infoPtr->bPressed) { 1246 if ((nItem == infoPtr->iMoveItem) && (flags == HHT_ONHEADER)) { 1300 if (infoPtr->bPressed) 1301 { 1302 if ((nItem == infoPtr->iMoveItem) && (flags == HHT_ONHEADER)) 1303 { 1247 1304 infoPtr->items[infoPtr->iMoveItem].bDown = FALSE; 1248 1305 hdc = GetDC (hwnd); … … 1255 1312 infoPtr->bPressed = FALSE; 1256 1313 } 1257 else if (infoPtr->bTracking) { 1314 else if (infoPtr->bTracking) 1315 { 1258 1316 // TRACE (header, "End tracking item %d!\n", infoPtr->iMoveItem); 1259 1317 infoPtr->bTracking = FALSE; … … 1261 1319 HEADER_SendHeaderNotify (hwnd, HDN_ENDTRACKA, infoPtr->iMoveItem); 1262 1320 1263 if (!(dwStyle & HDS_FULLDRAG)) { 1321 if (!(dwStyle & HDS_FULLDRAG)) 1322 { 1264 1323 hdc = GetDC (hwnd); 1265 1324 HEADER_DrawTrackLine (hwnd, hdc, infoPtr->xOldTrack); … … 1270 1329 { 1271 1330 nWidth = pt.x - infoPtr->items[infoPtr->iMoveItem].rect.left + infoPtr->xTrackOffset; 1272 if (nWidth < MIN_ITEMWIDTH) 1273 nWidth = MIN_ITEMWIDTH; 1331 if (nWidth < MIN_ITEMWIDTH) nWidth = MIN_ITEMWIDTH; 1274 1332 1275 1333 if (infoPtr->nOldWidth != nWidth) 1276 1334 { 1277 RECT rect;1278 1279 1335 infoPtr->items[infoPtr->iMoveItem].cxy = nWidth; 1280 1336 HEADER_SendHeaderNotify (hwnd, HDN_ITEMCHANGEDA, infoPtr->iMoveItem); 1281 1337 1282 GetClientRect(hwnd,&rect); 1283 rect.left = infoPtr->items[infoPtr->iMoveItem].rect.right-2; 1284 HEADER_SetItemBounds (hwnd); 1285 rect.left = MIN(infoPtr->items[infoPtr->iMoveItem].rect.right-2,rect.left); 1286 InvalidateRect(hwnd,&rect,FALSE); 1338 HEADER_SetItemBounds (hwnd,infoPtr->iMoveItem); 1339 1340 HEADER_Refresh(hwnd); 1287 1341 } 1288 1342 } … … 1324 1378 if (newItem != infoPtr->iHotItem) 1325 1379 { 1380 INT oldItem = infoPtr->iHotItem; 1381 1326 1382 infoPtr->iHotItem = newItem; 1327 1383 hdc = GetDC (hwnd); 1328 HEADER_Refresh (hwnd, hdc); 1384 if (oldItem != -1) HEADER_DrawItem(hwnd,hdc,oldItem,FALSE,TRUE); 1385 if (newItem != -1) HEADER_DrawItem(hwnd,hdc,newItem,TRUE,TRUE); 1329 1386 ReleaseDC (hwnd, hdc); 1330 1387 } 1331 1388 } 1332 1389 1333 if (infoPtr->bCaptured) { 1390 if (infoPtr->bCaptured) 1391 { 1334 1392 if (infoPtr->bPressed) 1335 1393 { … … 1362 1420 infoPtr->iMoveItem); 1363 1421 } 1364 HEADER_SetItemBounds (hwnd); 1365 hdc = GetDC (hwnd); 1366 HEADER_Refresh (hwnd, hdc); 1367 ReleaseDC (hwnd, hdc); 1422 HEADER_SetItemBounds (hwnd,infoPtr->iMoveItem); 1423 HEADER_Refresh(hwnd); 1368 1424 } 1369 1425 else { … … 1399 1455 1400 1456 hdc = wParam==0 ? BeginPaint (hwnd, &ps) : (HDC)wParam; 1401 HEADER_ Refresh(hwnd, hdc);1457 HEADER_Draw (hwnd, hdc); 1402 1458 if(!wParam) 1403 1459 EndPaint (hwnd, &ps); 1460 1404 1461 return 0; 1405 1462 } … … 1460 1517 if (lParam) { 1461 1518 HEADER_ForceItemBounds (hwnd, infoPtr->nHeight); 1462 hdc = GetDC (hwnd); 1463 HEADER_Refresh (hwnd, hdc); 1464 ReleaseDC (hwnd, hdc); 1519 HEADER_Refresh(hwnd); 1465 1520 } 1466 1521 … … 1472 1527 HEADER_WindowProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) 1473 1528 { 1474 switch (msg) { 1529 switch (msg) 1530 { 1531 // case HDM_CLEARFILTER: //CB:add const 1532 // return HEADER_ClearFilter(hwnd,wParam,lParam); 1533 1475 1534 case HDM_CREATEDRAGIMAGE: 1476 1535 return HEADER_CreateDragImage (hwnd, wParam); … … 1525 1584 return HEADER_SetUnicodeFormat (hwnd, wParam); 1526 1585 1527 1528 1586 case WM_CREATE: 1529 1587 return HEADER_Create (hwnd, wParam, lParam); … … 1533 1591 1534 1592 case WM_ERASEBKGND: 1535 return 1;1593 return HEADER_EraseBackground(hwnd,wParam,lParam); 1536 1594 1537 1595 case WM_GETDLGCODE: 1538 return DLGC_WANTTAB | DLGC_WANTARROWS;1596 return HEADER_GetDlgCode(hwnd,wParam,lParam); 1539 1597 1540 1598 case WM_GETFONT: … … 1556 1614 1557 1615 case WM_PAINT: 1558 return HEADER_Paint (hwnd,wParam);1616 return HEADER_Paint(hwnd,wParam); 1559 1617 1560 1618 case WM_RBUTTONUP:
Note:
See TracChangeset
for help on using the changeset viewer.