资源简介
MFC程序, 通过windows API 控制计算机,关机, 注销, 重启
代码片段和文件信息
// MyButton.cpp : implementation file
//
#include “stdafx.h“
#include “RESTART.h“
#include “MyButton.h“
CMyButton::CMyButton(void)
{
m_DownColor = m_UpColor = RGB(000);//初始化设为黑色
}
CMyButton::~CMyButton(void)
{
}
BOOL CMyButton::Attach(const UINT nIDCWnd* pParent)
{
if (!SubclassDlgItem(nID pParent))
return FALSE;
return TRUE;
}
void CMyButton::SetDownColor(COLORREFcolor)
{ //CMyButton类的函数
m_DownColor = color;
}
void CMyButton::SetUpColor(COLORREF color)
{
m_UpColor = color;
}
void CMyButton::DrawItem(LPDRAWITEMSTRUCTlpDrawItemStruct)
{
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);//得到绘制的设备环境CDC
VERIFY(lpDrawItemStruct->CtlType==ODT_BUTTON);
//得当Button上文字这里的步骤是:1先得到在资源里编辑的按钮的文字
//然后将此文字重新绘制到按钮上
//同时将此文字的背景色设为透明这样按钮上仅会显示文字
const int bufSize = 512;
TCHAR buffer[bufSize];
GetWindowText(buffer bufSize);
int size=strlen(buffer);//得到长度
DrawText(lpDrawItemStruct->hDCbuffersize&lpDrawItemStruct->rcItemDT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_TABSTOP);//绘制文字
SetBkMode(lpDrawItemStruct->hDCTRANSPARENT);//透明
if (lpDrawItemStruct->itemState&ODS_SELECTED)//当按下按钮时的处理
{////重绘整个控制
CBrush brush(m_DownColor);
dc.FillRect(&(lpDrawItemStruct->rcItem)&brush);//利用画刷brush,填充矩形框
//因为这里进行了重绘所以文字也要重绘
DrawText(lpDrawItemStruct->hDCbuffersize&lpDrawItemStruct->rcItemDT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_TABSTOP);
SetBkMode(lpDrawItemStruct->hDCTRANSPARENT);
}
else//当按钮不操作或者弹起时
{
CBrush brush(m_UpColor);
dc.FillRect(&(lpDrawItemStruct->rcItem)&brush);//
DrawText(lpDrawItemStruct->hDCbuffersize&lpDrawItemStruct->rcItemDT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_TABSTOP);
SetBkMode(lpDrawItemStruct->hDCTRANSPARENT);
}
if ((lpDrawItemStruct->itemState&ODS_SELECTED)&&(lpDrawItemStruct->itemAction &(ODA_SELECT|ODA_DRAWENTIRE)))
{//选中了本控件高亮边框
COLORREF fc=RGB(255-GetRValue(m_UpColor)255-GetGValue(m_UpColor)255-GetBValue(m_UpColor));
CBrush brush(fc);
dc.frameRect(&(lpDrawItemStruct->rcItem)&brush);//用画刷brush,填充矩形边框
}
if (!(lpDrawItemStruct->itemState &ODS_SELECTED) &&(lpDrawItemStruct->itemAction & ODA_SELECT))
{
CBrush brush(m_UpColor); //控制的选中状态结束去掉边框
dc.frameRect(&lpDrawItemStruct->rcItem&brush);//}
dc.Detach();
}
- 上一篇:在MFC中嵌入cef浏览器demo
- 下一篇:MFC modBus 读写串口
相关资源
- MFC modBus 读写串口
- 在MFC中嵌入cef浏览器demo
- mfc安装全局钩子,显示窗口的标题
- VC/MFC 布局类
- MFC 动态数据显示控件
- DX_MFC框架
- 斗地主MFC源代码
- MFC对话框打印及预览功能完美版
- MFC实现可拖动的按钮
- 声纹识别MATLAB源程序全代码
- MFC 计算文件MD5码 VC++
- c++编的mfc 贪吃蛇游戏
- mfc 对话框 创建进度条 显示当前进度
- MFC操作Excel表,excel.hexcel.cpp源码
- 基于mfc tcp 文件传输 源代码
- MFC(C++)程序与文件关联后缀名含C
- MFC铅笔直线矩形菱形 算法
- MFC 五子棋 一个简单的五子棋游戏
- 酒店管理系统 VC++ MFC实现)
- 学生信息管理mfcword文档
- 一个MFC实现的简单的记事本程序
- VS2010中MFC工程名的修改
- VC++查看鼠标在图像选点坐标程序
- MFC类图-vs2010最新
- MFCC的matlab实现
- VS2010/MFC 读写excel文件 操作类
- MFC读取SHP文件
- 斗地主小游戏MFC版源程序
- C++网络聊天室程序
- 说话人识别代码
评论
共有 条评论