• 大小: 9.06MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-07
  • 语言: 其他
  • 标签: MyComboBox  

资源简介

一个自定义的combobox,目的是换皮肤,而且是全换。实现方式也不难,主要由static,Dialog,Listbox组合在一起实现的。滚动条的换肤是最难的,自己写需要花上一点时间。但是网上的有现成的嘛,所以借来用用。希望对下载的朋友有帮助。

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “ComboboxEx.h“
#include“resource.h“



CComboboxEx::CComboboxEx(void)
{
m_nBitX = 0;
m_nHeight = 0;
m_nCur = 0;
m_nHeight = 0;
}


CComboboxEx::~CComboboxEx(void)
{
}
BEGIN_MESSAGE_MAP(CComboboxEx CStatic)
ON_MESSAGE(WM_MOUSELEAVEonmouseleave)
ON_MESSAGE(WM_MOUSEHOVEROnMouseHover)
ON_WM_MOUSEMOVE()
ON_WM_ERASEBKGND()
ON_WM_PAINT()
ON_WM_DESTROY()
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()

void CComboboxEx::SetWindowSize(UINT nHeight)
{
if(m_nHeight==0)
{
m_nHeight = nHeight*20;
AlterListDlgPos(m_nHeight);
m_listboxdlg.m_nHeight=m_nHeight;
m_listboxdlg.m_nWidth=bitmap.bmWidth/2;
m_listboxdlg.m_listbox.m_nHeight = m_nHeight;
m_listboxdlg.AlterListBoxPos();
}

}

LRESULT CComboboxEx::OnMouseHover(WPARAM wParam LPARAM lParam)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
m_nBitX = 1;
InvalidateRect(NULLTRUE);
return 0;

//CStatic::OnMouseHover(nFlags point);
}


LRESULT CComboboxEx::onmouseleave(WPARAM wParam LPARAM lParam)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
m_nBitX = 0;
InvalidateRect(NULLTRUE);
return 0;

//CStatic::onmouseleave();
}


void CComboboxEx::onmousemove(UINT nFlags CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = m_hWnd;
tme.dwFlags = TME_LEAVE | TME_HOVER;
tme.dwHoverTime = 1;
_TrackMouseEvent(&tme);
CStatic::onmousemove(nFlags point);
}


BOOL CComboboxEx::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
DrawBk(*pDCm_nBitX);

return CStatic::OnEraseBkgnd(pDC);
}
void CComboboxEx::DrawBk(CDC& dcint nIndex)
{
CRect rect;
GetWindowRect(&rect); 
GetParent()-> ScreenToClient(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
dcMem.Selectobject(&bmpBackground);
MoveWindow(rect.leftrect.topbitmap.bmWidth/2bitmap.bmHeight1);
if(nIndex==0){
dc.StretchBlt(00bitmap.bmWidth/2bitmap.bmHeight&dcMem00bitmap.bmWidth/2bitmap.bmHeightSRCCOPY);
}
else if(nIndex==1){
dc.StretchBlt(00bitmap.bmWidth/2bitmap.bmHeight&dcMembitmap.bmWidth/20bitmap.bmWidth/2bitmap.bmHeightSRCCOPY);
}
dcMem.DeleteDC();
CFont font;
LOGFONT lf;
memset(&lf 0 sizeof(LOGFONT));
lf.lfHeight = 13;
strcpy(lf.lfFaceName “宋体“);
font.CreateFontIndirect(&lf);
dc.Selectobject(&font);

dc.SetBkMode(TRANSPARENT);
dc.TextOut(55m_listboxdlg.m_listbox.m_szCheck);
}

void CComboboxEx::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CStatic::OnPaint()


}


void CComboboxEx::OnDestroy()
{
CStatic::OnDestroy();


// TODO: 在此处添加消息处理程序代码
}


void CComboboxEx::PreSubclassWindow()
{
// TODO: 在此添加专用代码和/或调用基类
m_listboxdlg.Create(IDD_CBLISTBOXDLGthis);
bmpBackground.LoadBitmap(IDB_BITMAP1);
if(bmpBackground.GetSafeHandle()!=NULL)
{
bmpBackground.GetBitmap(&bitmap);
}


CStatic::PreSubclassWindow();
}


void CComb

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6704  2012-06-13 14:29  Combobox\MyCombobox\ComboboxEx.cpp

     文件       1429  2012-06-13 14:16  Combobox\MyCombobox\ComboboxEx.h

     文件       2532  2012-06-13 14:57  Combobox\MyCombobox\ComboboxListboxDlg.cpp

     文件        957  2012-06-13 14:44  Combobox\MyCombobox\ComboboxListboxDlg.h

     文件      38548  2012-06-13 14:06  Combobox\MyCombobox\Debug\CBListBox.obj

     文件      14398  2012-06-13 15:57  Combobox\MyCombobox\Debug\cl.command.1.tlog

     文件     154576  2012-06-13 15:57  Combobox\MyCombobox\Debug\CL.read.1.tlog

     文件      20088  2012-06-13 15:57  Combobox\MyCombobox\Debug\CL.write.1.tlog

     文件      49331  2012-06-13 15:57  Combobox\MyCombobox\Debug\ComboboxEx.obj

     文件      37066  2012-06-13 15:57  Combobox\MyCombobox\Debug\ComboboxListboxDlg.obj

     文件          2  2012-06-13 15:58  Combobox\MyCombobox\Debug\link-cvtres.read.1.tlog

     文件          2  2012-06-13 15:58  Combobox\MyCombobox\Debug\link-cvtres.write.1.tlog

     文件          2  2012-06-13 15:58  Combobox\MyCombobox\Debug\link.6168-cvtres.read.1.tlog

     文件          2  2012-06-13 15:58  Combobox\MyCombobox\Debug\link.6168-cvtres.write.1.tlog

     文件          2  2012-06-13 15:58  Combobox\MyCombobox\Debug\link.6168.read.1.tlog

     文件          2  2012-06-13 15:58  Combobox\MyCombobox\Debug\link.6168.write.1.tlog

     文件       5770  2012-06-13 15:58  Combobox\MyCombobox\Debug\link.command.1.tlog

     文件      14040  2012-06-13 15:58  Combobox\MyCombobox\Debug\link.read.1.tlog

     文件       4138  2012-06-13 15:58  Combobox\MyCombobox\Debug\link.write.1.tlog

     文件      38247  2012-06-13 13:43  Combobox\MyCombobox\Debug\ListBoxScroll.obj

     文件       1570  2012-06-13 15:58  Combobox\MyCombobox\Debug\mt.command.1.tlog

     文件       1462  2012-06-13 15:58  Combobox\MyCombobox\Debug\mt.read.1.tlog

     文件        622  2012-06-13 15:58  Combobox\MyCombobox\Debug\mt.write.1.tlog

     文件       6299  2012-06-13 13:43  Combobox\MyCombobox\Debug\MyCombobox.Build.CppClean.log

     文件        667  2012-06-13 13:43  Combobox\MyCombobox\Debug\MyCombobox.exe.embed.manifest

     文件        732  2012-06-13 15:57  Combobox\MyCombobox\Debug\MyCombobox.exe.embed.manifest.res

     文件        381  2012-06-13 15:58  Combobox\MyCombobox\Debug\MyCombobox.exe.intermediate.manifest

     文件         63  2012-06-13 15:58  Combobox\MyCombobox\Debug\MyCombobox.lastbuildstate

     文件       2330  2012-06-13 15:58  Combobox\MyCombobox\Debug\MyCombobox.log

     文件      30713  2012-06-13 15:57  Combobox\MyCombobox\Debug\MyCombobox.obj

............此处省略47个文件信息

评论

共有 条评论

相关资源