win32 sdk繪制ListBox控件
睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接
2》指定size: [cpp] view plaincopy
3》畫: [cpp] view plaincopy
4》要點:| LBS_OWNERDRAWFIXED | LBS_HASSTRINGS, RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
1》產生:
[html] view plaincopy- //
- HWND CreateLB(HWND parentWnd)
- {
- HWND hListBox=0;
- hListBox = CreateWindow("LISTBOX",
- NULL,
- WS_CHILD|WS_VSCROLL | WS_TABSTOP | LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS,
- 230, 20, 60, 80,
- parentWnd, (HMENU)IDC_LISTBOX,
- (HINSTANCE) GetWindowLong(parentWnd, GWL_HINSTANCE),
- NULL);
- ShowWindow(hListBox,SW_SHOW);
- SendMessage(hListBox,LB_ADDSTRING ,0,(LPARAM)"你好");
- SendMessage(hListBox,LB_ADDSTRING ,0,(LPARAM)"我好");
- SendMessage(hListBox,LB_ADDSTRING ,0,(LPARAM)"他好");
- //
- return hListBox;
- }
2》指定size: [cpp] view plaincopy
- case WM_MEASUREITEM://ODT_LISTBOX
- if((UINT) wParam==IDC_LISTBOX)
- {
- LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT) lParam;
- lpmis->itemWidth=400;
- lpmis->itemHeight=22;
- }
- break;
3》畫: [cpp] view plaincopy
- case WM_DRAWITEM:
- if((UINT) wParam==IDC_LISTBOX)
- {
- LPDRAWITEMSTRUCT pDI=(LPDRAWITEMSTRUCT) lParam;
- HBRUSH brsh=CreateSolidBrush(RGB(255-30*pDI->itemID, 128+40*pDI->itemID, 128+40*pDI->itemID));//yellow
- FillRect(pDI->hDC,&pDI->rcItem,brsh);
- DeleteObject(brsh);
- // text
- SetBkMode(pDI->hDC,TRANSPARENT);
- char szText[260];
- SendMessage(m_hListBox,LB_GETTEXT,pDI->itemID,(LPARAM)szText);
- const DWORD dwStyle = DT_LEFT | DT_SINGLELINE | DT_VCENTER | DT_NOPREFIX | DT_END_ELLIPSIS;
- DrawText(pDI->hDC, szText, strlen(szText), &pDI->rcItem, dwStyle);
- }
- break;
4》要點:| LBS_OWNERDRAWFIXED | LBS_HASSTRINGS, RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成