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,
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
定位技术 开发工具 Android开发
Android高德地图SDK设置缩放控件的位置
Android高德地图SDK设置缩放控件的位置
223 0
|
开发工具
如何使用SAP UI5 SDK网站查询指定控件的属性如何使用
如何使用SAP UI5 SDK网站查询指定控件的属性如何使用
如何使用SAP UI5 SDK网站查询指定控件的属性如何使用
|
API 开发工具
如何使用SAP UI5 SDK网站查询指定控件的属性如何使用
如何使用SAP UI5 SDK网站查询指定控件的属性如何使用
如何使用SAP UI5 SDK网站查询指定控件的属性如何使用
|
定位技术 开发工具 Android开发
Android百度地图SDK:隐藏比例尺,隐藏百度LOGO,隐藏缩放控件
 Android百度地图SDK:隐藏(不显示)比例尺,隐藏(不显示)百度LOGO,隐藏(不显示)缩放控件 在自己的Android应用开发中使用百度地图SDK,百度会自动在MapView上添加百度的LOGO,缩放控制...
1463 0
|
开发工具
VC++ WIN32 sdk实现按钮自绘详解.
网上找了很多,可只是给出代码,没有详细解释,不便初学者理解.我就抄回冷饭.把这个再拿出来说说. 实例图片:    首先建立一个标准的Win32 Application 工程.选择a simple Win32 Application.
1395 0
|
开发工具 Windows
win32 sdk树形控件的项拖拽实现
本课中,我们将学习如何使用树型视图控件。另外还要学习如何在树型视图中完成拖-拉动作,以及如何使用图象列表。 理论: 树型视图是一种特别的窗口,我们可以使用它一目了然地表示某种层次关系。譬如象在资源管理器中左边窗口中的就是树型视图。
1160 0
|
开发工具
win32 sdk 列表视图控件绘制
[cpp] view plaincopy   //////////////////////////////////////////////////////////////   LRESULT ListViewCustomDraw(HWND hwnd, LPARAM lParam...
1003 0
|
开发工具
VC++ WIN32 sdk实现按钮自绘详解 之二.
网上找了很多,可只是给出代码,没有详细解释,不便初学者理解.我就抄回冷饭.把这个再拿出来说说. 实例图片:    首先建立一个标准的Win32 Application 工程.选择a simple Win32 Application.
998 0