-
大小: 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個文件信息
評論
共有 條評論