MFC自绘按钮,如何在enableWindow的状态改变时,进行这个button对应图片的更改

我子绘了一个button,继承自CButton。在初始化的时候就已经传入了多张png图片的路径,对应了按下、普通、hover这几个状态。我想要做到,当我的调用button.enableWindow(true)或者button.enableWindow(false)的时候,响应某个事件,然后更改这个按钮的图片。
所以,当我调用enableWindow的时候,会有什么事件被触发,然后被我响应的呢

mfc

1个回答

qq_33298609
好来滴茶 回复graceminc: 好的好的,谢谢你
9 个月之前 回复
graceminc
graceminc_粒子 回复qq_33298609: 点击即可
10 个月之前 回复
graceminc
graceminc_粒子 回复qq_33298609: 左侧,投票下面有个对号
10 个月之前 回复
caozhy
贵阳老马马善福专门编写代码的老马就是我! 回复qq_33298609: 你是手机访问的么?有bug,用电脑访问,采纳按钮在我回答左上角的箭头下面
10 个月之前 回复
qq_33298609
好来滴茶 抱歉我怎么采纳不了您的回答啊,没有采纳那个按钮。是不是时间过去太久了呢
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MFC BUtton按钮自绘
在MFC的基础上将按钮控件分别以垂直、水平和倾斜三种形式绘制了一个6个按钮控件图,但是在绘图上还是有很大的差距的
MFC Button按钮自绘
vs下的工程,代码可运行,对Button进行了自绘
MFC 自绘按钮 改变按钮形状问题
[color=#FF0000]如下图怎么将红色 全圈 的按钮 改成和插入的图片大小一样,去掉直角[/color]rn[img=https://img-bbs.csdn.net/upload/201703/03/1488527280_953179.png][/img]rnrn代码如下:rn[code=c]void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)rnrn if (!lpDrawItemStruct)rn return;rn HDC hMemDC;rn HBITMAP bmpMem;rn HGDIOBJ hOldObj;rn bmpMem = CreateCompatibleBitmap(lpDrawItemStruct->hDC, lpDrawItemStruct->rcItem.right - lpDrawItemStruct->rcItem.left, lpDrawItemStruct->rcItem.bottom - lpDrawItemStruct->rcItem.top);rn if (!bmpMem)rn return;rn hMemDC = CreateCompatibleDC(lpDrawItemStruct->hDC);rn if (!hMemDC)rn rn if (bmpMem)rn rn ::DeleteObject(bmpMem);rn bmpMem = NULL;rn rn return;rn rnrn hOldObj = ::SelectObject(hMemDC, bmpMem);rnrn RECT rectTmp = 0 ;rnrn rectTmp = lpDrawItemStruct->rcItem;rnrn MapWindowPoints(GetParent(), &rectTmp);rnrn int nW = lpDrawItemStruct->rcItem.right - lpDrawItemStruct->rcItem.left;rnrn int nH = lpDrawItemStruct->rcItem.bottom - lpDrawItemStruct->rcItem.top;rnrn[color=#FF0000] if (lpDrawItemStruct->itemState & ODS_SELECTED)rn rn //按钮被选择 rn m_imgButton.BitBlt(hMemDC, 0, 0, nW, nH, 0, 0, SRCCOPY);rn rn else if (lpDrawItemStruct->itemState & ODS_FOCUS)rn rn //焦点状态 rn m_imgButton.BitBlt(hMemDC, 0, 0, nW, nH, 0, 0, SRCCOPY);rn rn elsern rn //默认状态 rn CImage imgParent;rn imgParent.Load(m_strImgParentPath);rn imgParent.BitBlt(hMemDC, 0, 0, nW, nH, 0, 0, SRCCOPY); rn imgParent.AlphaBlend(hMemDC, 0, 0, nW, nH, 0, 0, nW, nH);//显示有透明度的图片rn imgParent.Destroy();rnrn rn[/color]rn ::BitBlt(lpDrawItemStruct->hDC, 0, 0, nW, nH, hMemDC, 0, 0, SRCCOPY);rnrn SelectObject(hMemDC, hOldObj);rnrn if (bmpMem)rn rn ::DeleteObject(bmpMem);rn bmpMem = NULL;rn rnrn if (hMemDC)rn rn ::DeleteDC(hMemDC);rn hMemDC = NULL;rn rn return;rn[/code]
MFC改变按钮文字Button
https://blog.csdn.net/salony/article/details/44597845 MFC改变按钮文字Button,下面代码可以使按钮单击后从默认的开始变为停止,如果按钮标题是停止,那么再次单击后便变为开始。 CString i; GetDlgItemText(IDOK,i); //取按钮标题 if (i==_T("开始")) Ge...
MFC改变Button按钮的背景色
1.为Button按钮添加成员变量 按钮 添加成员变量 2.在…Dlg.h文件中,将自动生成的成员变量由CBuuton类型更改为CMFCButton CMFCButton m_roi_delete; 3.在OnInitDialog()初始化函数中,或者需要的位置添加更改背景色的控制语句,如: m_roi_delete.SetFaceColor(RGB(128,128,128),true)...
MFC自绘按钮按钮添加图片
MFC 按钮 增加背景图片美化美观
MFC自绘Button按钮分析和实现
对于按压式的Button按钮,WM_CTLCOLOR无法完成按钮控件的背景颜色和字体颜色修改,若想要完成外观定制需要添加WM_DRAWITEM消息或者重写CButton类中的DrawItem函数完成按钮外观修改,下面逐一介绍。 自绘制知识基础 自绘制需要的两个基础步骤: 1.控件...
自绘和MFC Push Button一样的按钮
WM_DRAWITEM自绘和MFC Push Button一样的按钮
自绘button按钮
自绘button按钮,实现自己想要的功能,包括改变各种状态下的按钮外观
MFC Button自绘
此压缩包内涵LedButton check box自绘(在不同状态显示不同状态照片的功能) 及 MyButton Button控件自绘(可定义背景颜色,字体颜色,给指定窗体发送消息),注意调用MyButton时控件owner draw属性选true
MFC自绘BUTTON 出错
我写了个CMyButton类,该类派生于CButton。我在网上看到说用SubclassDlgItem将派生类CMyButton的对象与对话框中的基类控件相连接,这样可以处理基类控件的消息。可是我这样做后,运行了对话框一闪就关闭了,求指导,我的代码如下:rnrn[color=#FF0000]CMyButton的头文件[/color]rn#pragma oncern#include "afxwin.h"rnrn#ifndef _H_MYBUTTON_Hrn#define _H_MYBUTTON_Hrnrnclass CMyButton :rn public CButtonrnrn DECLARE_DYNAMIC(CMyButton)rnpublic:rn CMyButton(void);rn ~CMyButton(void);rn void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);rn void PreSubclassWindow();rn rnprotected:rn //AFX_MSG(CMyButton)rn afx_msg void OnMouseMove(UINT nFlags, CPoint point);rn afx_msg void OnMouseHover(UINT nFlags, CPoint point);rn afx_msg void OnMouseLeave();rn //AFX_MSG(rn DECLARE_MESSAGE_MAP()rnrnpublic:rn bool istrack_mousemove;rn;rnrn#endifrnrnrn[color=#FF0000]CMyButton的cpp文件[/color]rn#include "MyButton.h"rnrnIMPLEMENT_DYNAMIC(CMyButton,CButton)rnCMyButton::CMyButton(void)rnrn istrack_mousemove=true;rnrnrnCMyButton::~CMyButton(void)rnrnrnrnrnBEGIN_MESSAGE_MAP(CMyButton,CButton)rn ON_WM_MOUSEMOVE()rn ON_WM_MOUSEHOVER()rn ON_WM_MOUSELEAVE()rn ON_WM_DRAWITEM()rnEND_MESSAGE_MAP()rnrnvoid CMyButton::OnMouseMove(UINT nFlags, CPoint point)rnrn if (istrack_mousemove)rn rn TRACKMOUSEEVENT mouseevent;rn mouseevent.cbSize=sizeof(mouseevent);rn mouseevent.dwFlags=TME_LEAVE|TME_HOVER;rn mouseevent.dwHoverTime=10;rn mouseevent.hwndTrack=this->GetSafeHwnd();rn _TrackMouseEvent(&mouseevent);rn istrack_mousemove=false;rn rn //CButton::OnMouseMove( nFlags, point);rnrnrnvoid CMyButton::OnMouseHover(UINT nFlags, CPoint point)rnrn this->SetWindowText(_T("hover"));rn //CButton::OnMouseHover( nFlags, point);rnrnrnvoid CMyButton::OnMouseLeave()rnrn istrack_mousemove=true;rn this->SetWindowText(_T("leave"));rn //CButton::OnMouseLeave();rnrnrnvoid CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)rnrn //assert(lpDrawItemStruct->CtlType==ODT_BUTTON);rn if (lpDrawItemStruct->itemState & ODS_FOCUS)rn rn this->SetWindowText(_T("PUSH"));rn rnrnrnvoid CMyButton::PreSubclassWindow() rnrn rn ModifyStyle(0, BS_OWNERDRAW); //修改为自绘buttonrn CButton::PreSubclassWindow();rnrnrn然后我调用该CMyButton的对话框的OnInitDialog()里添加rnp=new CMyButton; //p我在对话框的头文件里已定义为CMyButton *prnp->SubclassDlgItem(IDC_BN_1,this);rnrn[color=#FF0000]特别说明:rn加了p->SubclassDlgItem(IDC_BN_1,this)后,运行时对话框就一闪而过rn不加p->SubclassDlgItem(IDC_BN_1,this)这句,运行时对话框就可以显示rn请问原因[/color]rnrnrnrnrnrn
MFC自绘Button类
MFC编写的自绘CButton类,可以直接运用的CButton封装的自绘类.
MFC获取Check Box/Radio button按钮状态的方法,和改变改变其按钮状态的方法有
获取Check Box按钮状态的方法有:1.调用自身控制变量获取GetState()函数获取,根据返回值判断1表示选中0表示未选中2.::SendMessage(checkHwnd, BM_GETCHECK, 0, 0);根据返回值判断9表示选中8表示未选中3.::IsDlgButtonChecked(checkHwnd, ID);根据返回值判断1表示选中0表示未选中改变其按钮状态的方法有:1.调
selector之按钮状态图片改变
第一步在res文件夹下 新建drawable文件夹 该该文件夹里新建文件Androi XML文件,选择selector属性 如下我新建的page01_radiobutton_drawable.xml文件用于处理page01_radiobutton按钮的图片显示 /ViewPage_Test/res/drawable/page01_radiobutton_drawable.xml 内容
自绘按钮的状态处理
根据鼠标的坐标处理按钮的点击等状态,当按住鼠标左键,按钮变色,按住左键同时把鼠标移出按钮,按钮恢复原来的样子,但是当按钮在窗体的边缘上时,这样一下移出窗体时,mousemove事件就不好处理了,应为没法判断鼠标的位置所以,按钮无法恢复原来的样子了,这该怎么解决呢,不知道说清楚了没有....
动态添加的自绘Button如何在父窗口中进行消息响应??
我继承了CButton,做了个分不同状态贴图的button(很像是CBitmapButton)遇到了一下几个问题,请教大家~rnrn3个问题:rn1:在自己做的button中,要根据button的不同状态进行贴图rn 我是在DrawItem中对button的状态进行判断时,并不是像网上搜到的资料那样 ODS_SELECTED == state 就是按下,我这个按下的时候跟踪到的 lpDrawItemStruct -> itemState 为 0 rn 这是为啥啊?rnrn2:同样是在这个自制的button里面,按键按下能得到WM_LBUTTONDOWN ,但是当我拽着光标到button外再释放,这个自制的button里面也能收到WM_LBUTTONUP rn 这是为什么呢? 在button区域外释放光标也能收到buttonup的消息?? 如果这是不正常的 要怎么解决呢?rnrn3:在父窗口中:rn 因为是动态生成的 就是说 我是根据某个值循环生成了很多的button 不能通过敲代码来设定它们的消息处理函数 那么我该怎么来进行他们的消息处理(例如处理他们的buttonup buttondown...等消息)rn 我重载OnCommand():rn wID = (WORD) LOWORD (wParam);rn wNotifyCode = (WORD) HIWORD (wParam)rn 得到的wID是正确的 ,可是wNotifyCode 为0rn 这是为什么呢?不能这样做吗?那应该怎样做??rnrnrn谢谢大家~
如何在运行状态,实现拖动按钮,改变按钮的位置?
有点菜,不好意思!
MFC自绘按钮的实现
此段代码主要实现了按钮的自绘及背景的修改,适合初学者参考……
MFC自绘按钮
MFC自绘按钮,对于想写自定义按钮,是一个很好的例子。
MFC自绘按钮内存泄漏
把对应的按钮替换成系统默认的CButton按钮,程序正常,但是用自绘的CIconButton则会内存泄漏。请帮忙看一下问题出在哪里,谢谢![code=c]class AFX_EXT_CLASS CIconButton : public CButtonrnrnprivate:rn// CDC m_NormalDC;rn// CDC m_DownDC;rn// CDC m_DisableDC;rn// rn// CBitmap m_NormalBmp;rn// CBitmap m_DownBmp;rn// CBitmap m_DisableBmp;rn HDC m_NormalDC;rn HDC m_DownDC;rn HDC m_DisableDC;rnrn HBITMAP m_NormalBmp;rn HBITMAP m_DownBmp;rn HBITMAP m_DisableBmp;rnrn int m_InitDC;rn int m_btnType;rn bool m_bCheck;rn // Constructionrnpublic:rn CIconButton();rn bool GetCheck();rn void SetCheck(bool iCheck);rnrn // Overridesrn // ClassWizard generated virtual function overridesrn //AFX_VIRTUAL(CIconButton)rnpublic:rn virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);rnprotected:rn virtual void PreSubclassWindow();rn //AFX_VIRTUALrnrn // Implementationrnpublic:rn void EnableWindow(bool);rn void SetButType(int nType);rn void LoadBitmaps(UINT nIDBitmapResource,rn UINT nIDBitmapResourceSel = 0,rn UINT nIDBitmapResourceFocus = 0,rn UINT nIDBitmapResourceDisabled = 0 );rn virtual ~CIconButton();rnrn // Generated message map functionsrnprotected:rn //AFX_MSG(CIconButton)rn afx_msg void OnPaint();rn afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);rn afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);rn afx_msg void OnLButtonDown(UINT nFlags, CPoint point);rn //AFX_MSGrnrn DECLARE_MESSAGE_MAP()rn;rn[/code]rn[code=c]CIconButton::CIconButton()rnrn m_InitDC = FALSE;rn m_NormalDC = CreateCompatibleDC(NULL);rn m_DisableDC =CreateCompatibleDC(NULL);rn m_DownDC = CreateCompatibleDC(NULL);rn m_btnType = BT_NORMAL;rn m_NormalBmp = NULL;rn m_DownBmp = NULL;rn m_DisableBmp = NULL;rn m_bCheck = 0;rnrnrnCIconButton::~CIconButton()rnrn// m_DisableDC.DeleteDC();rn// m_DownDC.DeleteDC();rn// m_NormalDC.DeleteDC();rn// rn// m_NormalBmp.DeleteObject();rn// m_DownBmp.DeleteObject();rn// m_DisableBmp.DeleteObject(); rn if(!DeleteDC(m_DisableDC))rn rn RETAILMSG(1,(TEXT("Delete Disable DC Failed!\n")));rn rn if(!DeleteDC(m_DownDC))rn rn RETAILMSG(1,(TEXT("Delete Dowm DC Failed!\n")));rn rn if(!DeleteDC(m_NormalDC))rn rn RETAILMSG(1,(TEXT("Delete Normal DC Failed!\n")));rn rn rn if (m_NormalBmp)rn rn if(!DeleteObject(m_NormalBmp))rn rnrn RETAILMSG(1,(TEXT("Delete Normal Bmp Failed!,ErrCode=%d\n"),GetLastError()));rn rn rn if (m_DownBmp)rn rn if(!DeleteObject(m_DownBmp))rn rn RETAILMSG(1,(TEXT("Delete Down Bmp Failed!,ErrCode=%d\n"),GetLastError()));rn rn rn if(m_DisableBmp)rn rn if(!DeleteObject(m_DisableBmp))rn rn RETAILMSG(1,(TEXT("Delete Disable Bmp Failed!,ErrCode=%d\n"),GetLastError()));rn rn rn rnrnrnrnrnBEGIN_MESSAGE_MAP(CIconButton, CButton)rn //AFX_MSG_MAP(CIconButton)rn ON_WM_PAINT()rn ON_WM_CTLCOLOR()rn //ON_WM_LBUTTONDBLCLK()rn ON_WM_LBUTTONDOWN()rn //AFX_MSG_MAPrnEND_MESSAGE_MAP()rnrn/////////////////////////////////////////////////////////////////////////////rn// CIconButton message handlersrnrnvoid CIconButton::PreSubclassWindow() rnrn // TODO: Add your specialized code here and/or call the base classrn // 在此设置按钮样式为自绘按钮rn ModifyStyle(0, GetStyle()|BS_OWNERDRAW);rnrn CButton::PreSubclassWindow();rnrnrnvoid CIconButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) rnrn // TODO: Add your code to draw the specified itemrn CRect rect;rn GetClientRect(&rect);rn UINT status = lpDrawItemStruct->itemState;rn //CClientDC dc(this);rn if ( (status & ODS_DISABLED)&&(m_btnType & BT_DISABLE) )rn rn BitBlt(lpDrawItemStruct->hDC,0,0,rect.Width(),rect.Height(),m_DisableDC,0,0,SRCCOPY);rn rn else if ((status & ODS_SELECTED) ||m_bCheck)rn rn BitBlt(lpDrawItemStruct->hDC,0,0,rect.Width(),rect.Height(),m_DownDC,0,0,SRCCOPY);rn Sleep(30); //防止快速点击显示不全rn rn elsern rn BitBlt(lpDrawItemStruct->hDC,0,0,rect.Width(),rect.Height(),m_NormalDC,0,0,SRCCOPY);rn rnrnrnvoid CIconButton::OnPaint() rnrn CPaintDC dc(this); // device context for paintingrnrn // TODO: Add your message handler code herern if (m_InitDC)rn rn CRect rect;rn GetClientRect(&rect);rnrn UINT status = GetState();rnrn if ( (status & ODS_DISABLED)&&(m_btnType & BT_DISABLE) )rn rn BitBlt(dc.m_hDC,0,0,rect.Width(),rect.Height(),m_DisableDC,0,0,SRCCOPY);rn rn else if ((status & ODS_SELECTED) ||m_bCheck)rn rn BitBlt(dc.m_hDC,0,0,rect.Width(),rect.Height(),m_DownDC,0,0,SRCCOPY);rn Sleep(30); //防止快速点击显示不全rn rn elsern rn BitBlt(dc.m_hDC,0,0,rect.Width(),rect.Height(),m_NormalDC,0,0,SRCCOPY);rn rn rn // Do not call CButton::OnPaint() for painting messagesrnrnrnrnrnHBRUSH CIconButton::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) rnrn //HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);rnrn // TODO: Change any attributes of the DC herernrn // TODO: Return a different brush if the default is not desiredrn //return hbr;rn //modify lft 2014.4.25 20:02rn return (HBRUSH)GetStockObject(NULL_BRUSH); //返回一个透明刷子,rn //HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);rnrnrnrnvoid CIconButton::LoadBitmaps(rn UINT nIDBitmapResource,rn UINT nIDBitmapResourceSel ,rn UINT nIDBitmapResourceFocus ,rn UINT nIDBitmapResourceDisabled )rnrn // BITMAP TmpBmp;rn if (m_NormalBmp )rn DeleteObject(m_NormalBmp);rnrn // CRect rect;rn // GetClientRect(&rect);rn m_NormalBmp = LOADDLLHBMP(nIDBitmapResource);rn SelectObject(m_NormalDC,m_NormalBmp);rnrn // m_NormalDC.SetBkColor(RGB(255,255,0));rn // m_NormalDC.Rectangle(rect);rnrn if (nIDBitmapResourceSel != 0)rn rn if (m_DownBmp )rn DeleteObject(m_DownBmp);rn m_DownBmp = LOADDLLHBMP(nIDBitmapResourceSel);rn SelectObject(m_DownDC,m_DownBmp); rnrn // m_DownDC.SetBkColor(RGB(255,0,0));rn // m_DownDC.Rectangle(rect);rn m_btnType |= BT_DOWN;rn rnrn if (nIDBitmapResourceDisabled != 0)rn rn if (m_DisableBmp )rn DeleteObject(m_DisableBmp);rn m_DisableBmp = LOADDLLHBMP(nIDBitmapResourceDisabled);rn SelectObject(m_DisableDC,m_DisableBmp); rn m_btnType |= BT_DISABLE;rn rn m_InitDC = TRUE;rnrnrnvoid CIconButton::SetButType(int nType)rnrn m_btnType |= nType;rnrnrnvoid CIconButton::OnLButtonDblClk(UINT nFlags, CPoint point) rnrn // TODO: Add your message handler code here and/or call defaultrn //SendMessage(WM_LBUTTONDOWN,0,0); rn if(!bLockIconBtn)rn rn CButton::OnLButtonDblClk(nFlags, point);rn rn rnrnrnvoid CIconButton::OnLButtonDown(UINT nFlags, CPoint point)rnrn //SendMessage(WM_LBUTTONDOWN,0,0);rn if(!bLockIconBtn)rn rn CButton::OnLButtonDown(nFlags,point);rn rnrnrnvoid CIconButton::EnableWindow(bool bEnable)rnrn int style=GetStyle(); //GetWindowLong(GWL_STYLE);rn#define WS_DISABLE 0X08000000rn if (bEnable)rn rn style &= (~WS_DISABLE);rn rn else rn rn style |=WS_DISABLE;rn rn ::SetWindowLong(GetSafeHwnd( ),GWL_STYLE,style);rn Invalidate();rnrnrnbool CIconButton::GetCheck()rnrn return m_bCheck;rnrnrnvoid CIconButton::SetCheck(bool bCheck)rnrn m_bCheck=bCheck;rn Invalidate();rn [/code]
MFC 自绘图标按钮
自绘图标按钮,可添加bitmap,icon图标,改变背景,字体颜色及大小,功能挤全
MFC 下自绘按钮
之前我有写过两篇MFC 下按钮的重绘,今天我给大家提供一种自绘方法#pragma once #include <string>// ClrButton #define WM_LRBTNCLICK (WM_USER + 532)class ClrButton : public CWnd { DECLARE_DYNAMIC(ClrButton)public: ClrButton();
mfc自绘标题栏按钮
自己重绘标题栏按钮,但是在双击标题栏的时候还原按钮并没有变成最大化按钮,在OnNcLButtonDblClk中应该怎么实现?
MFC 自绘按钮
怎么设置对话框上的按钮,使得按钮未选中时是凸起来的,按下去时是凹下去的。
mfc 自绘按钮
mfc 自绘按钮 此文章简单的自绘一个按钮,同时也介绍自绘的一些原理;(绝对适合初学者入门,我也Goolgle 很多资料,介绍相当模糊为此也花了两天时间整理和学习!)虽然做的很简单,却包含了 自绘的原理。
MFC自绘的按钮
用MFC写的自绘BUTTON 比自带button 好看多了
MFC自绘按钮问题
想请教一下大家我想用MFC做一个圆形的带有图片的按钮,朋友也帮我提供了2个类CButtonST和CUniButton,这2个类功能虽然很强但设计出的按钮总是不能同时满足"圆形"和"图片"这2个要求.CButtonST可以做出带ICON的按钮,但好象做不出多边形按钮,CUniButton这个类可以做出任意形状的按钮,但好象无法往按钮上帖图.这里我想请教一下怎么能把这两个功能结合起来做一个圆形的可帖图的按钮类..不用把具体步骤说明,只要指点一下大概的设计思路就可以了.谢谢!rn 如果这里不方便说明那我的QQ是:736698823 我在这先谢谢各位了!
VC++ MFC 按钮自绘
自绘按钮类(如xp风格按钮类),发现所有的用了自绘属性的按钮都不能响应键盘"enter"键,这些类实现的按钮只能通过鼠标点击进行操作,在实际开发时通常不符合要求的。 我改进了一下,使其可用键盘操作。
MFC下按钮自绘的实现
MFC 按钮自绘 VC++ MFC下按钮自绘的实现。
MFC的自绘按钮程序
这是个自绘按钮的代码,教你自己设置按钮。。挺好的
MFC按钮控件自绘
MFC按钮的自动绘制,能够装饰自己的的 控件,需要改善界面的很有用,可以看一看
MFC 按钮自绘的问题
请问,在按钮的自绘时,我需要根据图片的大小,来调整按钮的大小,我需要在哪个函数里写?rn
MFC按钮自绘
之前经常看到同事和各位网友说控件自绘,没有相关需求,所以一直没有了解过,现在终于忍不住,学习下这方面知识。  控件自绘的方式有两种:1.将控件的自绘封装成一个类,控件类中自己绘制2.直接在父窗口进行自绘。首先学习下第一种方式,在vs2008下示例:1、建立基于对话框的MFC程序OwnerDrawing,添加按钮ID为IDC_BUTTON1。2、项目名上右击-&amp;gt;添加-&amp;gt;类,添加MFC类(...
自绘实现半透明水晶按钮-一位大神的nx作品
目录(?)[+] 运行效果 实现方法 1.给按钮加上BS_OWNERDRAW样式 2.重载DrawItem函数,在这里绘制按钮 3.关键之处就是把父窗口的背景复制到按钮上,实现视觉上的透明 4.最后通过AlphaBlend实现半透明. 实现源码 [cpp]view plaincopyprint? // MyButto
MFC自绘按钮,漂亮的mfc按钮
我在网上收集的九个漂亮的mfc按钮类,可以很方便的集成到自己的项目中去,很强大。。。
改变button状态
第一回使用swing,遇到好多问题rn说正题rn这是个内部类,就是个翻页显示功能,其中的list由外部类提供,现在的问题是:当第一次由外部调用方法dataView()时,setParam()中的代码为什么不起作用??rnclass PagePanel extends JPanel implements ActionListener rnrn int intPageSize = 15; // 一页显示的记录数rn int intRowCount = 0; // 记录总数rn int intPageCount = 0; // 总页数rn int intPage = 1; // 待显示页码rn JButton button1 = new JButton("上一页");// rn JButton button2 = new JButton("下一页");rn JTextField pageText = new JTextField();rn JLabel label0 = new JLabel(" ");rn JLabel label1 = new JLabel("转到");rn JLabel label2 = new JLabel("页");rn JButton button3 = new JButton("GO");rn Dimension d = new Dimension(75, 20);rn Dimension dt = new Dimension(45, 20);rnrn public PagePanel() rn button1.setPreferredSize(d);rn button2.setPreferredSize(d);rn pageText.setPreferredSize(dt);rn button3.setPreferredSize(d);rn button1.addActionListener(this);rn button2.addActionListener(this);rn button3.addActionListener(this);rn this.add(label0);rn this.add(button1);rn this.add(button2);rn this.add(label1);rn this.add(pageText);rn this.add(label2);rn this.add(button3);rn rnrn public void actionPerformed(ActionEvent e) rn Object o = e.getSource();rn if(o == button1) rn intPage--;rn rn if(o == button2) rn intPage++;rn rn if(o == button3) rn try rn String t = pageText.getText();rn if(t.equals("" + intPage))rn return;rn intPage = Integer.parseInt(t);rn catch(Exception ex) rn pageText.setText("" + intPage);rn System.out.print("转换数字时出错!");rn return;rn rn rn dataView();rn rnrn public void dataView() rn setParam();//rn // 开始索引rn int index = (intPage - 1) * intPageSize;rn if(index < 0)rn index = 0;rn jpane.setText("");rn for(int i = index; i < list.size() && i < intPage * intPageSize; i++) rn //输出内容,省略...rn rn rnrn public void setParam() rn intRowCount = list.size();rn intPageCount = intRowCount % intPageSize == 0 ? intRowCountrn / intPageSize : intRowCount / intPageSize + 1;rn tittleLabel.setText("显示结果");//这行管用rn label0.setText("共" + intPageCount + "页");//??rn if(intPage < 1)rn intPage = 1;rn if(intPage >= intPageCount)rn intPage = intPageCount;rn rn if(intPage == 1)rn button1.setEnabled(false);//??rn elsern button1.setEnabled(true);rn if(intPage == intPageCount)rn button2.setEnabled(false);rn elsern button2.setEnabled(true);//??rn pageText.setText(String.valueOf(intPage));//??rn rn rn第一次执行是 intPage=1,为啥//?? 的代码没有起到作用,也执行了rn只有当我点击翻页按钮时 才起作用?rn还用,经过翻页操作后,如果再从外部调用dataView()方法,刚才说的这些代码依然不起作用,但数据在更新rn纳闷!!rn用内部类的问题吗?但也执行了啊,为啥没效果rn高手指点!!
Button按钮控件自绘操作
1、首先为工程CButton类的派生类CMyButton,在CMyButton的头文件中添加一个用于保存图标的成员变量和一个设置函数:用来为按钮加载我们导入的图标。 public: HICON m_hIcon; void SetIcon(UINT nIcon) { m_hIcon = AfxGetApp()->LoadIcon(nIcon); } //...... 2、在CMy
button按钮的重绘、更改热点图片等功能
自己根据网络找的以下mfc下button按钮重绘、实现更换不同的图片和鼠标移动是显示不同的图片的功能。
Android 使用level-list改变对应的状态图片
使用level-lest改变对应的状态图片为了实现这种效果 其中的☀图片是根据状态变化的, 以前的做法:if(条件1){ image.setBackground(R.id.xxx1); }else if(条件2){ image.setBackground(R.id.xxx2); }else if(条件3){ image.setBackground(R.id.xxx3)
自绘图片按钮,高效率
自绘button,自行处理消息事件,效率高
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法