自定义的Combox的DrawItem的问题

问题描述

voidCWordCombox::DrawItem(LPDRAWITEMSTRUCTlpDIS){ASSERT(lpDIS->CtlType==ODT_COMBOBOX);CStringcsCurFontName;CStringCompare;GetLBText(lpDIS->itemID,csCurFontName);Compare=csCurFontName.Left(1);intCompareResult=Compare.Compare(_T("@"));//if(CompareResult!=0)//{CRectrc=lpDIS->rcItem;m_Rectmeun=rc;CDCdc;dc.Attach(lpDIS->hDC);if(lpDIS->itemState&ODS_FOCUS){dc.DrawFocusRect(&rc);m_RecentFontID.Add(lpDIS->itemID);}if(lpDIS->itemID==-1)return;intnIndexDC=dc.SaveDC();CBrushbr;//COLORREFclrSample=m_clrSample;if(lpDIS->itemState&ODS_SELECTED){//br.CreateSolidBrush(::GetSysColor(COLOR_HIGHLIGHT));br.CreateSolidBrush(RGB(255,0,255));//dc.SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));dc.SetTextColor(RGB(0,20,255));//clrSample=::GetSysColor(COLOR_HIGHLIGHTTEXT);//m_itemID.Add(lpDIS->itemID);}else{//br.CreateSolidBrush(dc.GetBkColor());br.CreateSolidBrush(RGB(99,83,242));}dc.SetBkMode(TRANSPARENT);dc.FillRect(&rc,&br);//m_RecentFont.Add(csCurFontName);DWORDdwData=GetItemData(lpDIS->itemID);//if(dwData==TRUETYPE_FONTTYPE)if(dwData&&TRUETYPE_FONTTYPE){m_img.Draw(&dc,0,CPoint(rc.left+5,rc.top+4),ILD_TRANSPARENT);}rc.left+=GLYPH_WIDTH;intiOffsetX=SPACING;CFontcf;if(m_style==NAME_ONLY){if(!cf.CreateFont(m_iFontHeight,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,ANTIALIASED_QUALITY,DEFAULT_PITCH,csCurFontName)){ASSERT(0);return;}}CSizesz;intiPosY=0;HFONThf=NULL;switch(m_style){caseNAME_ONLY:{hf=(HFONT)dc.SelectObject(cf);sz=dc.GetTextExtent(csCurFontName);iPosY=(rc.Height()-sz.cy)/2;SetItemHeight(lpDIS->itemID,340);dc.TextOutW(rc.left+iOffsetX,rc.top+iPosY,csCurFontName);dc.SelectObject(hf);}break;}dc.RestoreDC(nIndexDC);dc.Detach();//}//lpDIS->itemID-=m_ModifyID;//m_ModifyID++;}在这函数里面为什么lpDIS->ItemID总是为1;

解决方案

解决方案二:
路过帮顶=============11月6日,论坛升级公告,积分已经做了调整!http://topic.csdn.net/u/20081107/11/b27dc75f-14b1-4594-9de3-5b18d9e36a11.html此次调整增加了两个新的可用分获取渠道:1:帖子被推荐(加精)后,帖主可以获得88分的可用分奖励;2:帖子结帖后会返还帖主50%的悬赏分,无满意结帖不返还分数;3:接下来会不断增加新的可用分获取途径,比如参与活动赠送等,请大家多关注;

时间: 2024-09-20 00:57:26

自定义的Combox的DrawItem的问题的相关文章

DataGridView自定义combox数据列取值问题

问题描述 在DataGridView我自定义了一个comboxColumn数据列,现在我想获得用户在这个combox下拉列表中选择的Value,请问该如何取得呢? 解决方案 解决方案二:combobox有个selectedIndexChange事件在里面写combobox.text就可以把选中的值拿出来如果绑定的时候是通过DisplayMember和valueMember来绑定的就通过combobox.selectedvalue来获得我是小菜鸟!说的不好清见谅,希望能够帮到你!解决方案三:com

实现自定义CListCtrl

一. 综述      Mfc自带的 listctrl 虽然能够完成一些常用的操作,但是如果对于某些特定的应用,则无能为力,这时候,就学要对空间进行扩展,以实现满足特定需要的功能. 本文阐述了如何实现具有自定义行高,而且能够选择和编辑的listctrl 控件.   二. 实现 (1) 实现自定义行高.         我们都知道,mfc 自带的 listctrl 控件的行高是固定的,不能够自定义的进行改变.如果设置一个比较大位图,或者简单的设置比较大号的字体,这些方法虽然能够改变行高,但是没有接触

C#使用combox实现线型的选择功能

问题描述 想要软件那样用combox实现线型(实线,虚线),线的粗度(1.2.3磅什么的)这种的选择,不知道各位大神有什么办法木有.... 解决方案 解决方案二:第二个图上错了....解决方案三:挽尊....有人帮忙么...解决方案四:自定义控件,上Codeproject找就有解决方案五:引用3楼wyd1520的回复: 自定义控件,上Codeproject找就有 额....英语捉急...解决方案六:ComboxBox设置DrawMode属性为OwnerDraw然后在DrawItem事件中绘图就行

C#自定义泛型类绑定ComboBox控件

C# WinForm ComboBox 自定义数据项 (ComboBoxItem )   WinForm下的ComboBox默认是以多行文本来设定显示列表的, 这通常不符合大家日常的应用,  因为大家日常应用通常是键/值对的形式去绑定它的. 那么用键值对的形式如何做? 因为Combox的每一个项的值是一个object, 实际上就是一个键/值对.我用的是下面这个类的实例作为它的一个项:     /// <summary>    /// ComboBox的项    /// </summary

iOS8新特性扩展(Extension)应用之四——自定义键盘控件

iOS8新特性扩展(Extension)应用之四--自定义键盘控件         iOS8系统的开放第三方键盘,使得用户在输入法的选择上更加自主灵活,也更加贴近不同语言的输入风格.这篇博客,将介绍如何开发一个第三方的键盘控件. 一.了解UIInputViewController类         UIInputViewController是系统扩展支持键盘扩展的一个类,通过这个类,我们可以自定义一款我们自己的键盘提供给系统使用.         首先,我们先来看一下这个类中的一些属性和方法:

PostgreSQL 11 preview - pgbench 变量、函数扩展 - 暨pgbench 自定义 benchmark讲解

标签 PostgreSQL , pgbench , 压测 , 变量 , tpc-b , 自定义压测 背景 pgbench是PostgreSQL软件包中的一款benchmark软件,纯C编码,效率高,压测方便. 内置TPC-B benchmark测试,同时支持自定义benchmark. 详细文档见 https://www.postgresql.org/docs/10/static/pgbench.html pgbench 自定义benchmark脚本支持的语法 变量赋值的语法 压测需要生成输入变量

AngularJS中的自定义指令的使用介绍

  这篇文章主要介绍了深入讲解AngularJS中的自定义指令的使用,AngularJS是一款热门的JavaScript开发库,需要的朋友可以参考下 AngularJS的自定义指令,就是你自己的指令,加上编译器编译DOM时运行的原生核心函数.这可能很难理解.现在,假设我们想在应用中不同页面复用一些特定的代码,而又不复制代码.那么,我们就可以简单地把这段代码放到单独的文件,并调用使用自定义指令的代码,而不是一遍又一遍地敲下来.这样的代码更容易理解.AngularJS中有四种类型的自定义指令: 元素

教你Word中创建自定义工具栏的技巧

  每个人都有不同的使用电脑的习惯,在Word中也可以让大家实现自己想要的工具栏设置,你大可根据自己的操作习惯来自定义.以下,便是进行自定义工具栏创建的技巧了,感兴趣的可以学习一下. Word 1.打开"自定义"窗口.在菜单栏的"工具"--"自定义", 打开"自定义"窗口,单击切换到"工具栏"选项卡(或者点击菜单栏的"视图"--"工具栏"--"自定义&quo

织梦ckeditor添加自定义按钮,实现自定义样式

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 织梦到了5.7之后编辑器不再是fck,而是升级成了ckeditor3.6.2.在我们对内容页面的body正文部分进行编辑的时候,前台正文部分有的时候需要一个自定义样式,但ckeditor并没有自定义样式涉及. 例如页面:http://www.badubox.com/game/500.html, 可以看到有虚线边框的地方,就是自定义样式. 当然