-
大小: 9.06MB文件类型: .rar金币: 2下载: 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\li
文件 2 2012-06-13 15:58 Combobox\MyCombobox\Debug\li
文件 2 2012-06-13 15:58 Combobox\MyCombobox\Debug\li
文件 2 2012-06-13 15:58 Combobox\MyCombobox\Debug\li
文件 2 2012-06-13 15:58 Combobox\MyCombobox\Debug\li
文件 2 2012-06-13 15:58 Combobox\MyCombobox\Debug\li
文件 5770 2012-06-13 15:58 Combobox\MyCombobox\Debug\li
文件 14040 2012-06-13 15:58 Combobox\MyCombobox\Debug\li
文件 4138 2012-06-13 15:58 Combobox\MyCombobox\Debug\li
文件 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.em
文件 732 2012-06-13 15:57 Combobox\MyCombobox\Debug\MyCombobox.exe.em
文件 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个文件信息
评论
共有 条评论