怎样在Button在显示ICO图标,而且文字在图标上面? 我想美化下我的程序,想在Button上显示ICo图标,可是显示图标后,文字没了!哪位大侠帮帮小弟啊?急......切题就给分! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个可以实现的方法提供两种:一,用PS编辑图标,在上面写上文字:二,自绘按钮,要求是先绘制图标,再写字,代码如下按钮风格(BS_OWNERDRAW)case WM_DRAWITEM : static LPDRAWITEMSTRUCT pdis; static HICON hIcon; pdis = (LPDRAWITEMSTRUCT) lParam ; if(pdis->CtlType==ODT_BUTTON) { switch (pdis->CtlID) { case ID_1://按钮ID FillRect(pdis->hDC,&pdis->rcItem ,CreateSolidBrush(RGB(255,255,255))); hIcon=LoadIcon(getModuleHandle(0),MAKEINTRESOURCE(IDI_ICON)); DrawIcon(pdis->hDC,0,0,hIcon);//按钮图标1 SetBkMode(pdis->hDC,TRANSPARENT); TextOut(pdis->hDC,0,0,"按钮",4);//按钮文字 break; } if (pdis->itemState & ODS_SELECTED)//选中(按下) switch(pdis->CtlID) { case ID_1: hIcon=LoadIcon(getModuleHandle(0),MAKEINTRESOURCE(IDI_ICON2)); DrawIcon(pdis->hDC,0,0,hIcon);//按钮图标2 SetBkMode(pdis->hDC,TRANSPARENT); TextOut(pdis->hDC,0,0,"按钮",4);//按钮文字 break; } } 如果是动态按钮的话,可以子类化按钮窗口,拦截WM_MOUSEMOVE,WM_MOUSELEVEL,....等消息,即可如果有什么不明白的,请加Q:501219511(没事勿扰哦,O(∩_∩)O~) hIcon=LoadIcon(getModuleHandle(0),MAKEINTRESOURCE(IDI_ICON2));这一句里的应该是GetModuleHandle(0),而不是getModuleHandle(0),(请改过来) 一楼的大哥,你讲的很好,我基本弄懂了(第二种方法),可是这些代码写在哪了?是写在对话框的初始化里面,还是在OnPaint函数里面啊?劳烦再给小弟讲讲!O(∩_∩)O~ VPN网络socket连接问题 COMOBOX怪异问题 FindowW()查找窗口问题,用SPY工具查找其值总是AFX........如何查找其类名的固定值? vc chat的问题1 如何透明处理 请教汉字的文件读写方法 做过屏保开发的高手看过来. MFC中怎样让启动画面显示完毕之后再显示主界面 对消息处理出现的三个怪问题 如何把PDF格式的文本转换到TXT或其他可编辑格式? directshow 画面显示问题 集合类使用心得
一,用PS编辑图标,在上面写上文字:
二,自绘按钮,要求是先绘制图标,再写字,代码如下按钮风格(BS_OWNERDRAW)case WM_DRAWITEM :
static LPDRAWITEMSTRUCT pdis;
static HICON hIcon;
pdis = (LPDRAWITEMSTRUCT) lParam ;
if(pdis->CtlType==ODT_BUTTON)
{
switch (pdis->CtlID)
{
case ID_1://按钮ID
FillRect(pdis->hDC,&pdis->rcItem ,CreateSolidBrush(RGB(255,255,255)));
hIcon=LoadIcon(getModuleHandle(0),MAKEINTRESOURCE(IDI_ICON));
DrawIcon(pdis->hDC,0,0,hIcon);//按钮图标1
SetBkMode(pdis->hDC,TRANSPARENT);
TextOut(pdis->hDC,0,0,"按钮",4);//按钮文字
break;
}
if (pdis->itemState & ODS_SELECTED)//选中(按下)
switch(pdis->CtlID)
{
case ID_1:
hIcon=LoadIcon(getModuleHandle(0),MAKEINTRESOURCE(IDI_ICON2));
DrawIcon(pdis->hDC,0,0,hIcon);//按钮图标2
SetBkMode(pdis->hDC,TRANSPARENT);
TextOut(pdis->hDC,0,0,"按钮",4);//按钮文字
break;
}
}
如果有什么不明白的,请加Q:501219511(没事勿扰哦,O(∩_∩)O~)
这一句里的应该是GetModuleHandle(0),而不是getModuleHandle(0),(请改过来)