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

  • 大小: 136KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2024-02-01
  • 語言: C/C++
  • 標(biāo)簽: vs2008sp1??vc++??

資源簡介

該資源在VS2008SP1 IDE中編寫,主要介紹了如何在VC++中實(shí)現(xiàn)復(fù)選下拉框,其中包含了CheckComboBox.h和CheckComboBox.cpp兩個(gè)文件,這兩個(gè)文件實(shí)現(xiàn)了復(fù)選下拉框的功能。但作者M(jìn)argin在使用復(fù)選下拉框時(shí)發(fā)現(xiàn):在模態(tài)對話框中使用時(shí)存在一個(gè)難以解決問題,多次進(jìn)入模態(tài)子對話框時(shí),復(fù)選下拉框?qū)o法正常選擇。為解決此問題,作者M(jìn)argin發(fā)現(xiàn)采用非模態(tài)子對話框就不會出現(xiàn)上述情況。該資源能幫助你在VC++中正確使用復(fù)選下拉框(CCheckComboBox)。

資源截圖

代碼片段和文件信息

//?CheckComboBox.cpp?
//
//?Written?by?Magnus?Egelberg?(magnus.egelberg@lundalogik.se)
//
//?Copyright?(C)?1999?Lundalogik?AB?Sweden.?All?rights?reserved.
//?
//

#include?“stdafx.h“
#include?“CheckComboBox.h“

#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif

static?WNDPROC?m_pWndProc?=?0;
static?CCheckComboBox?*m_pComboBox?=?0;


BEGIN_MESSAGE_MAP(CCheckComboBox?CComboBox)
//{{AFX_MSG_MAP(CCheckComboBox)
ON_MESSAGE(WM_CTLCOLORLISTBOX?OnCtlColorListBox)
ON_MESSAGE(WM_GETTEXT?OnGetText)
ON_MESSAGE(WM_GETTEXTLENGTH?OnGetTextLength)
ON_CONTROL_REFLECT(CBN_DROPDOWN?ondropDown)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()


//
//?The?subclassed?COMBOLBOX?message?handler
//
extern?“C“?LRESULT?FAR?PASCAL?ComboBoxListBoxProc(HWND?hWnd?UINT?nMsg?WPARAM?wParam?LPARAM?lParam)
{

switch?(nMsg)?{


case?WM_RBUTTONDOWN:?{
//?If?you?want?to?select?all/unselect?all?using?the
//?right?button?remove?this?ifdef.?Personally?I?don‘t?really?like?it
#if?FALSE

if?(m_pComboBox?!=?0)?{
INT?nCount?=?m_pComboBox->GetCount();
INT?nSelCount?=?0;

for?(INT?i?=?0;?i? if?(m_pComboBox->GetCheck(i))
nSelCount++;
}


m_pComboBox->SelectAll(nSelCount?!=?nCount);

//?Make?sure?to?invalidate?this?window?as?well
InvalidateRect(hWnd?0?FALSE);
m_pComboBox->GetParent()->SendMessage(WM_COMMAND?MAKELONG(GetWindowLong(m_pComboBox->m_hWnd?GWL_ID)?CBN_SELCHANGE)?(LPARAM)m_pComboBox->m_hWnd);

}
#endif

break;
}

//?Make?the?combobox?always?return?-1?as?the?current?selection.?This
//?causes?the?lpDrawItemStruct->itemID?in?DrawItem()?to?be?-1
//?when?the?always-visible-portion?of?the?combo?is?drawn
case?LB_GETCURSEL:?{
return?-1;
}


case?WM_CHAR:?{
if?(wParam?==?VK_SPACE)?{
//?Get?the?current?selection
INT?nIndex?=?CallWindowProcA(m_pWndProc?hWnd?LB_GETCURSEL?wParam?lParam);

CRect?rcItem;
SendMessage(hWnd?LB_GETITEMRECT?nIndex?(LONG)(VOID?*)&rcItem);
InvalidateRect(hWnd?rcItem?FALSE);

//?Invert?the?check?mark
m_pComboBox->SetCheck(nIndex?!m_pComboBox->GetCheck(nIndex));

//?Notify?that?selection?has?changed
m_pComboBox->GetParent()->SendMessage(WM_COMMAND?MAKELONG(GetWindowLong(m_pComboBox->m_hWnd?GWL_ID)?CBN_SELCHANGE)?(LPARAM)m_pComboBox->m_hWnd);
return?0;
}

break;
}


case?WM_LBUTTONDOWN:?{

CRect?rcClient;
GetClientRect(hWnd?rcClient);

CPoint?pt;
pt.x?=?LOWORD(lParam);
pt.y?=?HIWORD(lParam);


if?(PtInRect(rcClient?pt))?{
INT?nItemHeight?=?SendMessage(hWnd?LB_GETITEMHEIGHT?0?0);
INT?nTopIndex???=?SendMessage(hWnd?LB_GETTOPINDEX?0?0);

//?Compute?which?index?to?check/uncheck
INT?nIndex?=?nTopIndex?+?pt.y?/?nItemHeight;

CRect?rcItem;
SendMessage(hWnd?LB_GETITEMRECT?nIndex?(LONG)(VOID?

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????9894??2012-10-24?17:35??Point29\CheckComboBox.cpp

?????文件???????1800??2012-10-24?17:35??Point29\CheckComboBox.h

?????文件?????105968??2012-10-29?13:56??Point29\Point29.aps

?????文件???????1666??2012-10-29?11:27??Point29\Point29.cpp

?????文件????????451??2012-10-29?11:27??Point29\Point29.h

?????文件???????6409??2012-10-29?13:56??Point29\Point29.rc

?????文件????????879??2012-10-29?11:27??Point29\Point29.sln

????..A..H.?????20992??2012-10-29?14:34??Point29\Point29.suo

?????文件???????5866??2012-10-29?13:28??Point29\Point29.vcproj

?????文件???????3621??2012-10-29?14:26??Point29\Point29Dlg.cpp

?????文件????????783??2012-10-29?13:44??Point29\Point29Dlg.h

?????文件???????2869??2012-10-29?11:27??Point29\ReadMe.txt

?????文件??????67777??2007-11-28?16:21??Point29\res\Point29.ico

?????文件????????363??2012-10-29?11:27??Point29\res\Point29.rc2

?????文件????????907??2012-10-29?13:42??Point29\resource.h

?????文件????????140??2012-10-29?11:27??Point29\stdafx.cpp

?????文件???????1854??2012-10-29?11:27??Point29\stdafx.h

?????文件???????1019??2012-10-29?13:45??Point29\SubDlg1.cpp

?????文件????????532??2012-10-29?13:45??Point29\SubDlg1.h

?????文件???????1019??2012-10-29?13:59??Point29\SubDlg2.cpp

?????文件????????530??2012-10-29?13:45??Point29\SubDlg2.h

?????文件???????1030??2012-10-29?11:27??Point29\targetver.h

?????目錄??????????0??2012-10-29?14:35??Point29\res

?????目錄??????????0??2012-10-29?14:35??Point29

-----------?---------??----------?-----??----

???????????????236369????????????????????24


評論

共有 條評論