用VC编程,怎样能在界面中添加一个红色指示灯

现要完成的功能如下:在界面上设置一个红色指示灯,点击“打开”按钮时,指示灯亮,点击“关闭”按钮时指示灯不亮,应如何实现?首先要画出一个指示灯,是用位图吗?... 现要完成的功能如下:在界面上设置一个红色指示灯,点击“打开”按钮时,指示灯亮,点击“关闭”按钮时指示灯不亮,应如何实现?首先要画出一个指示灯,是用位图吗? 展开
 我来答
百度网友ecba46aab
2009-10-26 · TA获得超过2303个赞
知道大有可为答主
回答量:2477
采纳率:100%
帮助的人:1969万
展开全部
自画按钮啊

一,新建一个基于对话框的工程Dlg。
二,增加两个按钮,ID分别为IDC_BUTTON1、IDC_BUTTON2,第一个选中“自画”属性。
三,在CDlgDlg类增加一个变量bool m_bStart ;并在构造函数中将它赋初值为false;
CDlgDlg::CDlgDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDlgDlg::IDD, pParent)
{
m_bStart = false ;
//{{AFX_DATA_INIT(CDlgDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
四,双击第二个按钮,为它增加响应函数,代码如下:
void CDlgDlg::OnButton2()
{
m_bStart = !m_bStart ;
Invalidate();
}
五,利用类向导在类为WM_DRAWITEM增加响应函数,代码如下:
void CDlgDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
if( IDC_BUTTON1 == nIDCtl )
{
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);
CBrush brush(RGB(255,0,0));
if( m_bStart )
{
dc.SelectObject(&brush);
}
CPoint pt(lpDrawItemStruct->rcItem.left,lpDrawItemStruct->rcItem.top);
dc.Ellipse(&lpDrawItemStruct->rcItem);
}
else
CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
445886925
2009-10-26
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
弄2个图切换下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式