Changeset 2161 for trunk/src/comctl32/listview.c
- Timestamp:
- Dec 20, 1999, 5:46:39 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/comctl32/listview.c
r2126 r2161 1 /*$Id: listview.c,v 1.18 1999-12-20 16:46:39 cbratschi Exp $*/ 1 2 /* 2 3 * Listview control … … 8 9 * 9 10 * NOTES 10 * Listview control implementation. 11 * Listview control implementation. 11 12 * 12 13 * TODO: … … 20 21 * Data structure: 21 22 * LISTVIEW_SetItemCount : not completed 22 * 23 * 23 24 * Unicode: 24 25 * LISTVIEW_SetItemW : no unicode support … … 32 33 * LISTVIEW_GetHotCursor : not implemented 33 34 * LISTVIEW_GetHoverTime : not implemented 34 * LISTVIEW_GetISearchString : not implemented 35 * LISTVIEW_GetISearchString : not implemented 35 36 * LISTVIEW_GetBkImage : not implemented 36 37 * LISTVIEW_GetColumnOrderArray : simple hack only … … 38 39 * LISTVIEW_Arrange : empty stub 39 40 * LISTVIEW_ApproximateViewRect : incomplete 40 * LISTVIEW_Scroll : not implemented 41 * LISTVIEW_Scroll : not implemented 41 42 * LISTVIEW_RedrawItems : empty stub 42 43 * LISTVIEW_Update : not completed … … 96 97 97 98 98 HWND CreateEditLabel(LPCSTR text, DWORD style, INT x, INT y, 99 INT width, INT height, HWND parent, HINSTANCE hinst, 100 101 99 HWND CreateEditLabel(LPCSTR text, DWORD style, INT x, INT y, 100 INT width, INT height, HWND parent, HINSTANCE hinst, 101 EditlblCallback EditLblCb, DWORD param); 102 102 103 /* 103 104 * forward declarations … … 143 144 144 145 /************************************************************************* 145 * LISTVIEW_UpdateHeaderSize [Internal] 146 * LISTVIEW_UpdateHeaderSize [Internal] 146 147 * 147 148 * Function to resize the header control … … 179 180 /*** 180 181 * DESCRIPTION: 181 * Update the scrollbars. This functions should be called whenever 182 * Update the scrollbars. This functions should be called whenever 182 183 * the content, size or view changes. 183 * 184 * 184 185 * PARAMETER(S): 185 186 * [I] HWND : window handle … … 190 191 static VOID LISTVIEW_UpdateScroll(HWND hwnd) 191 192 { 192 LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)GetWindowLongA(hwnd, 0); 193 LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)GetWindowLongA(hwnd, 0); 193 194 LONG lStyle = GetWindowLongA(hwnd, GWL_STYLE); 194 195 UINT uView = lStyle & LVS_TYPEMASK; … … 226 227 if (lStyle & WS_HSCROLL) 227 228 { 228 229 ShowScrollBar(hwnd, SB_HORZ, FALSE); 229 230 } 230 231 } … … 244 245 { 245 246 scrollInfo.nPos = 0; 246 } 247 } 247 248 scrollInfo.nMin = 0; 248 scrollInfo.fMask = SIF_RANGE | SIF_POS | SIF_PAGE ; 249 scrollInfo.fMask = SIF_RANGE | SIF_POS | SIF_PAGE ; 249 250 scrollInfo.nPage = nListWidth / LISTVIEW_SCROLL_DIV_SIZE; 250 251 scrollInfo.nMax = max(infoPtr->nItemWidth / LISTVIEW_SCROLL_DIV_SIZE, 0)-1; 251 SetScrollInfo(hwnd, SB_HORZ, &scrollInfo, TRUE); 252 SetScrollInfo(hwnd, SB_HORZ, &scrollInfo, TRUE); 252 253 253 254 /* Update the Header Control */ … … 585 586 * DESCRIPTION: 586 587 * Calculates the width of an item. 587 * 588 * 588 589 * PARAMETER(S): 589 590 * [I] HWND : window handle … … 624 625 { 625 626 for (i = 0; i < GETITEMCOUNT(infoPtr); i++) 626 { 627 { 627 628 nLabelWidth = LISTVIEW_GetLabelWidth(hwnd, i); 628 629 nItemWidth = max(nItemWidth, nLabelWidth); 629 630 } 630 631 631 632 /* default label size */ 632 633 if (GETITEMCOUNT(infoPtr) == 0) … … 644 645 /* add padding */ 645 646 nItemWidth += WIDTH_PADDING; 646 647 647 648 if (infoPtr->himlSmall != NULL) 648 649 { … … 657 658 } 658 659 } 659 660 660 661 return nItemWidth; 661 662 } … … 664 665 * DESCRIPTION: 665 666 * Calculates the width of a specific item. 666 * 667 * PARAMETER(S): 668 * [I] HWND : window handle 669 * [I] LPSTR : string 667 * 668 * PARAMETER(S): 669 * [I] HWND : window handle 670 * [I] LPSTR : string 670 671 * 671 672 * RETURN: … … 719 720 /* add padding */ 720 721 nItemWidth += WIDTH_PADDING; 721 722 722 723 if (infoPtr->himlSmall != NULL) 723 724 { … … 732 733 } 733 734 } 734 735 735 736 return nItemWidth; 736 737 } … … 2010 2011 * DESCRIPTION: 2011 2012 * Draws listview items when in report display mode. 2012 * 2013 * PARAMETER(S): 2014 * [I] HWND : window handle 2015 * [I] HDC : device context handle 2013 * 2014 * PARAMETER(S): 2015 * [I] HWND : window handle 2016 * [I] HDC : device context handle 2016 2017 * 2017 2018 * RETURN: … … 2069 2070 2070 2071 /* Offset the Scroll Bar Pos */ 2071 if (GetScrollInfo(hwnd, SB_HORZ, &scrollInfo) != FALSE) 2072 if (GetScrollInfo(hwnd, SB_HORZ, &scrollInfo) != FALSE) 2072 2073 { 2073 2074 rcItem.left -= (scrollInfo.nPos * LISTVIEW_SCROLL_DIV_SIZE); … … 2077 2078 if (j == 0) 2078 2079 { 2079 LISTVIEW_DrawItem(hwnd, hdc, nItem, rcItem); 2080 } 2081 else 2080 LISTVIEW_DrawItem(hwnd, hdc, nItem, rcItem); 2081 } 2082 else 2082 2083 { 2083 2084 LISTVIEW_DrawSubItem(hwnd, hdc, nItem, j, rcItem); 2084 2085 } 2085 2086 } 2086 2087 2087 2088 nDrawPosY += infoPtr->nItemHeight; 2088 2089 } … … 2190 2191 * DESCRIPTION: 2191 2192 * Draws listview items when in list display mode. 2192 * 2193 * PARAMETER(S): 2194 * [I] HWND : window handle 2195 * [I] HDC : device context handle 2193 * 2194 * PARAMETER(S): 2195 * [I] HWND : window handle 2196 * [I] HDC : device context handle 2196 2197 * 2197 2198 * RETURN: … … 2208 2209 INT nItemWidth = LISTVIEW_GetItemWidth(hwnd); 2209 2210 INT nItemHeight = LISTVIEW_GetItemHeight(hwnd); 2210 2211 2211 2212 /* get number of fully visible columns */ 2212 2213 nColumnCount = LISTVIEW_GetColumnCount(hwnd); … … 2581 2582 * DESCRIPTION: 2582 2583 * Removes a column from the listview control. 2583 * 2584 * 2584 2585 * PARAMETER(S): 2585 2586 * [I] HWND : window handle … … 2595 2596 UINT uView = GetWindowLongA(hwnd, GWL_STYLE) & LVS_TYPEMASK; 2596 2597 BOOL bResult = FALSE; 2597 2598 2598 2599 if (Header_DeleteItem(infoPtr->hwndHeader, nColumn) != FALSE) 2599 2600 { … … 2713 2714 int sItem = nItem < GETITEMCOUNT(infoPtr) ? nItem : nItem - 1; 2714 2715 if (infoPtr->nFocusedItem == nItem) 2715 2716 LISTVIEW_SetItemFocus(hwnd, sItem); 2716 2717 } 2717 2718 else 2718 2719 infoPtr->nFocusedItem = -1; 2719 2720 2720 2721 LISTVIEW_UpdateScroll(hwnd); … … 2766 2767 LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)GetWindowLongA(hwnd, 0); 2767 2768 HDPA hdpaSubItems; 2768 2769 2769 2770 ZeroMemory(&dispInfo, sizeof(NMLVDISPINFOA)); 2770 2771 2771 2772 if (NULL == (hdpaSubItems = (HDPA)DPA_GetPtr(infoPtr->hdpaItems, nItem))) 2772 2773 return FALSE; 2773 2774 2774 2775 if (NULL == (lpItem = (LISTVIEW_ITEM *)DPA_GetPtr(hdpaSubItems, 0))) 2775 2776 return FALSE; 2776 2777 2777 2778 dispInfo.hdr.hwndFrom = hwnd; … … 2811 2812 RECT rect; 2812 2813 LISTVIEW_ITEM *lpItem; 2813 HWND hedit; 2814 HWND hedit; 2814 2815 HINSTANCE hinst = GetWindowLongA(hwnd, GWL_HINSTANCE); 2815 2816 INT nCtrlId = GetWindowLongA(hwnd, GWL_ID); 2816 2817 LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)GetWindowLongA(hwnd, 0); 2817 2818 HDPA hdpaSubItems; 2818 2819 2819 2820 if (~GetWindowLongA(hwnd, GWL_STYLE) & LVS_EDITLABELS) 2820 2821 return FALSE; … … 2825 2826 ZeroMemory(&dispInfo, sizeof(NMLVDISPINFOA)); 2826 2827 if (NULL == (hdpaSubItems = (HDPA)DPA_GetPtr(infoPtr->hdpaItems, nItem))) 2827 2828 return 0; 2828 2829 2829 2830 if (NULL == (lpItem = (LISTVIEW_ITEM *)DPA_GetPtr(hdpaSubItems, 0))) 2830 2831 return 0; 2831 2832 2832 2833 dispInfo.hdr.hwndFrom = hwnd; … … 2843 2844 2844 2845 if (ListView_LVNotify(GetParent(hwnd), nCtrlId, &dispInfo)) 2845 2846 return 0; 2846 2847 2847 2848 rect.left = LVIR_LABEL; 2848 2849 if (!LISTVIEW_GetItemRect(hwnd, nItem, &rect)) 2849 2850 2851 if (!(hedit = CreateEditLabel(dispInfo.item.pszText , WS_VISIBLE, 2852 rect.left, rect.top, rect.right - rect.left + 15, 2853 rect.bottom - rect.top, 2854 2855 2850 return 0; 2851 2852 if (!(hedit = CreateEditLabel(dispInfo.item.pszText , WS_VISIBLE, 2853 rect.left, rect.top, rect.right - rect.left + 15, 2854 rect.bottom - rect.top, 2855 hwnd, hinst, LISTVIEW_EndEditLabel, nItem))) 2856 return 0; 2856 2857 2857 2858 infoPtr->hwndEdit = hedit; 2858 SetFocus(hedit); 2859 SetFocus(hedit); 2859 2860 SendMessageA(hedit, EM_SETSEL, 0, -1); 2860 2861 … … 3358 3359 3359 3360 if (!lpiArray) 3360 3361 return FALSE; 3361 3362 3362 3363 /* little hack */ 3363 3364 for (i = 0; i < iCount; i++) 3364 3365 lpiArray[i] = i; 3365 3366 3366 3367 return TRUE; … … 4450 4451 * DESCRIPTION: 4451 4452 * Retrieves the origin coordinates when in icon or small icon display mode. 4452 * 4453 * 4453 4454 * PARAMETER(S): 4454 4455 * [I] HWND : window handle 4455 4456 * [O] LPPOINT : coordinate information 4456 * 4457 * 4457 4458 * RETURN: 4458 4459 * SUCCESS : TRUE … … 4464 4465 UINT uView = lStyle & LVS_TYPEMASK; 4465 4466 BOOL bResult = FALSE; 4466 4467 4467 4468 // TRACE("(hwnd=%x, lpptOrigin=%p)\n", hwnd, lpptOrigin); 4468 4469 … … 4477 4478 { 4478 4479 scrollInfo.fMask = SIF_POS; 4479 if (GetScrollInfo(hwnd, SB_HORZ, &scrollInfo) != FALSE) 4480 { 4481 lpptOrigin->x = -scrollInfo.nPos * LISTVIEW_SCROLL_DIV_SIZE; 4480 if (GetScrollInfo(hwnd, SB_HORZ, &scrollInfo) != FALSE) 4481 { 4482 lpptOrigin->x = -scrollInfo.nPos * LISTVIEW_SCROLL_DIV_SIZE; 4482 4483 } 4483 4484 } … … 4491 4492 } 4492 4493 } 4493 4494 4494 4495 bResult = TRUE; 4495 4496 } 4496 4497 4497 4498 return bResult; 4498 4499 } … … 4847 4848 * DESCRIPTION: 4848 4849 * Inserts a new item in the listview control. 4849 * 4850 * 4850 4851 * PARAMETER(S): 4851 4852 * [I] HWND : window handle … … 4888 4889 if (nItem != -1) 4889 4890 { 4890 nItem = DPA_InsertPtr(infoPtr->hdpaItems, lpLVItem->iItem, 4891 nItem = DPA_InsertPtr(infoPtr->hdpaItems, lpLVItem->iItem, 4891 4892 hdpaSubItems); 4892 4893 if (nItem != -1) … … 4898 4899 { 4899 4900 LISTVIEW_SetItemFocus(hwnd, nItem); 4900 } 4901 } 4901 4902 } 4902 4903 4903 4904 /* send LVN_INSERTITEM notification */ 4904 4905 ZeroMemory(&nmlv, sizeof(NMLISTVIEW)); … … 4909 4910 nmlv.lParam = lpItem->lParam;; 4910 4911 ListView_LVNotify(GetParent(hwnd), lCtrlId, &nmlv); 4911 4912 4912 4913 if ((uView == LVS_SMALLICON) || (uView == LVS_LIST)) 4913 4914 nItemWidth = LISTVIEW_CalculateWidth(hwnd, lpLVItem->iItem); 4915 4916 4917 4918 4919 4914 { 4915 nItemWidth = LISTVIEW_CalculateWidth(hwnd, lpLVItem->iItem); 4916 if (nItemWidth > infoPtr->nItemWidth) 4917 { 4918 infoPtr->nItemWidth = nItemWidth; 4919 } 4920 } 4920 4921 4921 4922 /* align items (set position of each item) */ … … 4931 4932 } 4932 4933 } 4933 4934 4934 4935 LISTVIEW_UpdateScroll(hwnd); 4935 4936 /* refresh client area */ … … 4948 4949 COMCTL32_Free(lpItem); 4949 4950 } 4950 4951 4951 4952 return nItem; 4952 4953 } … … 5183 5184 5184 5185 if (!lpiArray) 5185 5186 return FALSE; 5186 5187 5187 5188 return TRUE; … … 5897 5898 * DESCRIPTION: 5898 5899 * Performs vertical scrolling. 5899 * 5900 * 5900 5901 * PARAMETER(S): 5901 5902 * [I] HWND : window handle 5902 5903 * [I] INT : scroll code 5903 * [I] SHORT : current scroll position if scroll code is SB_THIMBPOSITION 5904 * [I] SHORT : current scroll position if scroll code is SB_THIMBPOSITION 5904 5905 * or SB_THUMBTRACK. 5905 5906 * [I] HWND : scrollbar control window handle … … 5916 5917 scrollInfo.cbSize = sizeof(SCROLLINFO); 5917 5918 scrollInfo.fMask = SIF_PAGE | SIF_POS | SIF_RANGE; 5918 5919 5919 5920 if (GetScrollInfo(hwnd, SB_VERT, &scrollInfo) != FALSE) 5920 5921 { … … 5928 5929 } 5929 5930 break; 5930 5931 5931 5932 case SB_LINEDOWN: 5932 5933 if (scrollInfo.nPos < scrollInfo.nMax) … … 5935 5936 } 5936 5937 break; 5937 5938 5938 5939 case SB_PAGEUP: 5939 5940 if (scrollInfo.nPos > scrollInfo.nMin) … … 5950 5951 } 5951 5952 break; 5952 5953 5953 5954 case SB_PAGEDOWN: 5954 5955 if (scrollInfo.nPos < scrollInfo.nMax) … … 5977 5978 } 5978 5979 } 5979 5980 5980 5981 return 0; 5981 5982 } … … 5984 5985 * DESCRIPTION: 5985 5986 * Performs horizontal scrolling. 5986 * 5987 * 5987 5988 * PARAMETER(S): 5988 5989 * [I] HWND : window handle 5989 5990 * [I] INT : scroll code 5990 * [I] SHORT : current scroll position if scroll code is SB_THIMBPOSITION 5991 * [I] SHORT : current scroll position if scroll code is SB_THIMBPOSITION 5991 5992 * or SB_THUMBTRACK. 5992 5993 * [I] HWND : scrollbar control window handle … … 6003 6004 scrollInfo.cbSize = sizeof(SCROLLINFO); 6004 6005 scrollInfo.fMask = SIF_PAGE | SIF_POS | SIF_RANGE; 6005 6006 6006 6007 if (GetScrollInfo(hwnd, SB_HORZ, &scrollInfo) != FALSE) 6007 6008 { … … 6016 6017 } 6017 6018 break; 6018 6019 6019 6020 case SB_LINERIGHT: 6020 6021 if (scrollInfo.nPos < scrollInfo.nMax) … … 6023 6024 } 6024 6025 break; 6025 6026 6026 6027 case SB_PAGELEFT: 6027 6028 if (scrollInfo.nPos > scrollInfo.nMin) … … 6037 6038 } 6038 6039 break; 6039 6040 6040 6041 case SB_PAGERIGHT: 6041 6042 if (scrollInfo.nPos < scrollInfo.nMax) … … 6071 6072 } 6072 6073 } 6073 6074 6074 6075 return 0; 6075 6076 } … … 6443 6444 * DESCRIPTION: 6444 6445 * Handles notifications from children. 6445 * 6446 * 6446 6447 * PARAMETER(S): 6447 6448 * [I] HWND : window handle 6448 6449 * [I] INT : control identifier 6449 6450 * [I] LPNMHDR : notification information 6450 * 6451 * 6451 6452 * RETURN: 6452 6453 * Zero … … 6455 6456 { 6456 6457 LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)GetWindowLongA(hwnd, 0); 6457 6458 if (lpnmh->hwndFrom == infoPtr->hwndHeader) 6458 6459 if (lpnmh->hwndFrom == infoPtr->hwndHeader) 6459 6460 { 6460 6461 /* handle notification from header control */ … … 6477 6478 nmlv.iItem = -1; 6478 6479 nmlv.iSubItem = pnmHeader->iItem; 6479 6480 6480 6481 ListView_LVNotify(GetParent(hwnd),lCtrlId, &nmlv); 6481 6482 … … 7370 7371 * DESCRIPTION: 7371 7372 * Handle any WM_COMMAND messages 7372 * 7373 * 7373 7374 * PARAMETER(S): 7374 7375 * … … 7379 7380 switch (HIWORD(wParam)) 7380 7381 { 7381 7382 7383 /* 7384 * Adjust the edit window size 7385 7386 7387 7388 7389 RECTrect;7390 SIZEsz;7391 7392 7393 7394 7395 7396 SetWindowPos ( 7397 7398 HWND_TOP, 7399 0, 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7382 case EN_UPDATE: 7383 { 7384 /* 7385 * Adjust the edit window size 7386 */ 7387 char buffer[1024]; 7388 LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)GetWindowLongA(hwnd, 0); 7389 HDC hdc = GetDC(infoPtr->hwndEdit); 7390 RECT rect; 7391 SIZE sz; 7392 7393 GetWindowTextA(infoPtr->hwndEdit, buffer, 1024); 7394 GetWindowRect(infoPtr->hwndEdit, &rect); 7395 if (GetTextExtentPoint32A(hdc, buffer, strlen(buffer), &sz)) 7396 { 7397 SetWindowPos ( 7398 infoPtr->hwndEdit, 7399 HWND_TOP, 7400 0, 7401 0, 7402 sz.cx + 15, 7403 rect.bottom - rect.top, 7404 SWP_DRAWFRAME|SWP_NOMOVE); 7405 } 7406 ReleaseDC(hwnd, hdc); 7407 7408 break; 7409 } 7410 7411 default: 7412 return SendMessageA (GetParent (hwnd), WM_COMMAND, wParam, lParam); 7412 7413 } 7413 7414 … … 7424 7425 * RETURN: 7425 7426 */ 7426 LRESULT CALLBACK EditLblWndProc(HWND hwnd, UINT uMsg, 7427 7427 LRESULT CALLBACK EditLblWndProc(HWND hwnd, UINT uMsg, 7428 WPARAM wParam, LPARAM lParam) 7428 7429 { 7429 7430 BOOL cancel = TRUE; … … 7433 7434 switch (uMsg) 7434 7435 { 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 return CallWindowProcA(einfo->EditWndProc, hwnd, 7461 7436 case WM_GETDLGCODE: 7437 return DLGC_WANTARROWS | DLGC_WANTALLKEYS; 7438 7439 case WM_KILLFOCUS: 7440 break; 7441 7442 case WM_DESTROY: 7443 { 7444 WNDPROC editProc = einfo->EditWndProc; 7445 SetWindowLongA(hwnd, GWL_WNDPROC, (LONG)editProc); 7446 COMCTL32_Free(einfo); 7447 infoPtr->pedititem = NULL; 7448 return CallWindowProcA(editProc, hwnd, uMsg, wParam, lParam); 7449 } 7450 7451 case WM_CHAR: 7452 if (VK_RETURN == (INT)wParam) 7453 { 7454 cancel = FALSE; 7455 break; 7456 } 7457 else if (VK_ESCAPE == (INT)wParam) 7458 break; 7459 7460 default: 7461 return CallWindowProcA(einfo->EditWndProc, hwnd, 7462 uMsg, wParam, lParam); 7462 7463 } 7463 7464 7464 7465 if (einfo->EditLblCb) 7465 7466 { 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7467 char *buffer = NULL; 7468 7469 if (!cancel) 7470 { 7471 int len = 1 + GetWindowTextLengthA(hwnd); 7472 7473 if (len > 1) 7474 { 7475 if (NULL != (buffer = (char *)COMCTL32_Alloc(len*sizeof(char)))) 7476 { 7477 GetWindowTextA(hwnd, buffer, len); 7478 } 7479 } 7480 } 7481 7482 einfo->EditLblCb(GetParent(hwnd), buffer, einfo->param); 7483 7484 if (buffer) 7485 COMCTL32_Free(buffer); 7486 7487 einfo->EditLblCb = NULL; 7487 7488 } 7488 7489 … … 7500 7501 * RETURN: 7501 7502 */ 7502 HWND CreateEditLabel(LPCSTR text, DWORD style, INT x, INT y, 7503 INT width, INT height, HWND parent, HINSTANCE hinst, 7504 7503 HWND CreateEditLabel(LPCSTR text, DWORD style, INT x, INT y, 7504 INT width, INT height, HWND parent, HINSTANCE hinst, 7505 EditlblCallback EditLblCb, DWORD param) 7505 7506 { 7506 7507 HWND hedit; 7507 7508 LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)GetWindowLongA(parent, 0); 7508 7509 if (NULL == (infoPtr->pedititem = COMCTL32_Alloc(sizeof(EDITLABEL_ITEM)))) 7509 7510 return 0; 7510 7511 7511 7512 style |= WS_CHILDWINDOW|WS_CLIPSIBLINGS|ES_LEFT|WS_BORDER; 7512 if (!(hedit = CreateWindowA("Edit", text, style, x, y, width, height, 7513 7514 { 7515 7516 7513 if (!(hedit = CreateWindowA("Edit", text, style, x, y, width, height, 7514 parent, 0, hinst, 0))) 7515 { 7516 COMCTL32_Free(infoPtr->pedititem); 7517 return 0; 7517 7518 } 7518 7519 7519 7520 infoPtr->pedititem->param = param; 7520 7521 infoPtr->pedititem->EditLblCb = EditLblCb; 7521 infoPtr->pedititem->EditWndProc = (WNDPROC)SetWindowLongA(hedit, 7522 7522 infoPtr->pedititem->EditWndProc = (WNDPROC)SetWindowLongA(hedit, 7523 GWL_WNDPROC, (LONG) EditLblWndProc); 7523 7524 7524 7525 return hedit;
Note:
See TracChangeset
for help on using the changeset viewer.