zoukankan      html  css  js  c++  java
  • win32 sdk绘制ListBox控件

    1》产生:

     
    [html] view plaincopy
     
    1. //  
    2. HWND CreateLB(HWND parentWnd)  
    3. {  
    4.     HWND hListBox=0;  
    5.     hListBox = CreateWindow("LISTBOX",  
    6.                 NULL,  
    7.                 WS_CHILD|WS_VSCROLL | WS_TABSTOP | LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS,  
    8.                 230, 20, 60, 80,   
    9.                 parentWnd, (HMENU)IDC_LISTBOX,   
    10.                 (HINSTANCE) GetWindowLong(parentWnd, GWL_HINSTANCE),   
    11.                 NULL);  
    12.                 ShowWindow(hListBox,SW_SHOW);  
    13.                 SendMessage(hListBox,LB_ADDSTRING ,0,(LPARAM)"你好");  
    14.                 SendMessage(hListBox,LB_ADDSTRING ,0,(LPARAM)"我好");  
    15.                 SendMessage(hListBox,LB_ADDSTRING ,0,(LPARAM)"他好");  
    16. //  
    17.     return hListBox;  
    18. }  

    2》指定size:
     
    [cpp] view plaincopy
     
    1. case WM_MEASUREITEM://ODT_LISTBOX  
    2.     if((UINT) wParam==IDC_LISTBOX)  
    3.     {  
    4.         LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT) lParam;  
    5.         lpmis->itemWidth=400;  
    6.         lpmis->itemHeight=22;  
    7.     }  
    8.     break;  


    3》画:
     
    [cpp] view plaincopy
     
    1. case WM_DRAWITEM:  
    2.       
    3.     if((UINT) wParam==IDC_LISTBOX)  
    4.     {  
    5.         LPDRAWITEMSTRUCT pDI=(LPDRAWITEMSTRUCT) lParam;  
    6.         HBRUSH brsh=CreateSolidBrush(RGB(255-30*pDI->itemID, 128+40*pDI->itemID, 128+40*pDI->itemID));//yellow  
    7.         FillRect(pDI->hDC,&pDI->rcItem,brsh);  
    8.         DeleteObject(brsh);  
    9.         // text   
    10.         SetBkMode(pDI->hDC,TRANSPARENT);  
    11.         char szText[260];  
    12.         SendMessage(m_hListBox,LB_GETTEXT,pDI->itemID,(LPARAM)szText);  
    13.         const DWORD dwStyle = DT_LEFT | DT_SINGLELINE | DT_VCENTER | DT_NOPREFIX | DT_END_ELLIPSIS;  
    14.         DrawText(pDI->hDC, szText, strlen(szText), &pDI->rcItem, dwStyle);  
    15.     }  
    16. break;  


    4》要点:| LBS_OWNERDRAWFIXED | LBS_HASSTRINGS,
  • 相关阅读:
    Zookeeper 记录
    Eureka 分析记录
    Hbase 学习记录
    小技巧 Mongodb 动态查询 除去 _class 条件
    科技的继续发展会带给我们什么?
    无限拓展热区域缓存服务方案
    Git 的 4 个阶段的撤销更改
    自动化运维利器 Fabric
    Linux Shell 文本处理工具
    如何在 Linux 中找出 CPU 占用高的进程
  • 原文地址:https://www.cnblogs.com/lidabo/p/3701607.html
Copyright © 2011-2022 走看看