djlistbox.cpp

来自「命题逻辑中的归结推理系统设计与实现用C++实现」· C++ 代码 · 共 60 行

CPP
60
字号
// DJListBox.cpp : 实现文件
//
#include "stdafx.h"
#include "conseq.h"
#include "DJListBox.h"
#include "string.h"



// CDJListBox

IMPLEMENT_DYNAMIC(CDJListBox, CListBox)

CDJListBox::CDJListBox()
{
m_nMaxWidth = 0;
}

CDJListBox::~CDJListBox()
{
}
int CDJListBox::AddString(LPCTSTR lpszItem)
{ 
//此处加入字符串宽度跟踪、水平滚动条显示等代码 
	int nRet = CListBox::AddString(lpszItem); 
	SCROLLINFO scrollInfo; 
	memset(&scrollInfo, 0, sizeof(SCROLLINFO)); 
	scrollInfo.cbSize = sizeof(SCROLLINFO); 
	scrollInfo.fMask = SIF_ALL; 
	GetScrollInfo(SB_VERT, &scrollInfo, SIF_ALL); 
	int nScrollWidth = 0; 
	if(GetCount() > 1 && ((int)scrollInfo.nMax 
    >=(int)scrollInfo.nPage)) 
	      nScrollWidth = GetSystemMetrics(SM_CXVSCROLL); 
	SIZE sSize; 
	CClientDC myDC(this); 
	CFont* pListBoxFont = GetFont(); 
	if(pListBoxFont != NULL) 
	{ 
		CFont* pOldFont =myDC.SelectObject(pListBoxFont); 
		GetTextExtentPoint32(myDC.m_hDC, 
		lpszItem, 120, &sSize);
		m_nMaxWidth = max(m_nMaxWidth, (int)sSize.cx); 
		SetHorizontalExtent(m_nMaxWidth + 3); 
		myDC.SelectObject(pOldFont); 
	} 
   return nRet; 

} 


BEGIN_MESSAGE_MAP(CDJListBox, CListBox)
END_MESSAGE_MAP()



// CDJListBox 消息处理程序


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?