91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 18KB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-20
  • 語言: C/C++
  • 標簽: MFC??

資源簡介

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();

}

評論

共有 條評論