win32 sdk绘制ListBox控件

简介: 1》产生:   [html] view plaincopy   //   HWND CreateLB(HWND parentWnd)   {       HWND hListBox=0;       hListBox = CreateWindow("L...

1》产生:

 
[html]  view plain copy
 
  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 plain copy
 
  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 plain copy
 
  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,
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
定位技术 开发工具 Android开发
Android高德地图SDK设置缩放控件的位置
Android高德地图SDK设置缩放控件的位置
384 0
|
定位技术 开发工具 Android开发
Android百度地图SDK:隐藏比例尺,隐藏百度LOGO,隐藏缩放控件
 Android百度地图SDK:隐藏(不显示)比例尺,隐藏(不显示)百度LOGO,隐藏(不显示)缩放控件 在自己的Android应用开发中使用百度地图SDK,百度会自动在MapView上添加百度的LOGO,缩放控制...
1857 0
|
开发工具
VC++ WIN32 sdk实现按钮自绘详解.
网上找了很多,可只是给出代码,没有详细解释,不便初学者理解.我就抄回冷饭.把这个再拿出来说说. 实例图片:    首先建立一个标准的Win32 Application 工程.选择a simple Win32 Application.
1710 0
|
开发工具 Windows
win32 sdk树形控件的项拖拽实现
本课中,我们将学习如何使用树型视图控件。另外还要学习如何在树型视图中完成拖-拉动作,以及如何使用图象列表。 理论: 树型视图是一种特别的窗口,我们可以使用它一目了然地表示某种层次关系。譬如象在资源管理器中左边窗口中的就是树型视图。
1291 0
|
开发工具
win32 sdk 列表视图控件绘制
[cpp] view plaincopy   //////////////////////////////////////////////////////////////   LRESULT ListViewCustomDraw(HWND hwnd, LPARAM lParam...
1082 0
|
开发工具 C++ 资源调度
MFC 对象与Win32 SDK 句柄的映射关系
MFC相关技术说明: Mapping of Windows Handles to Objects MFC对象与Win32 SDK 句柄的映射关系 说明: MFC使用C++对象封装Win32句柄(操作系统资源调度单元 HANDLE),所以在概念上一定要把MFC中的关于C++对象和WI...
977 0