📄 ctrlpage1.cpp
字号:
// CtrlPage1.cpp : 实现文件
//
#include "stdafx.h"
#include "ControlUse.h"
#include "CtrlPage1.h"
// CCtrlPage1 对话框
IMPLEMENT_DYNAMIC(CCtrlPage1, CPropertyPage)
CCtrlPage1::CCtrlPage1()
: CPropertyPage(CCtrlPage1::IDD)
{
m_DrawTool=-1;
}
CCtrlPage1::~CCtrlPage1()
{
}
void CCtrlPage1::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_DrawList);
DDX_Control(pDX, IDC_CHECKLISTBOX, m_checkList);
int iEvent;
int iItem;
if( m_checkList.GetCount() > 0 )
{
for( iEvent = 0; iEvent < m_listNames.GetSize(); iEvent++ )
{
iItem = m_checkList.FindStringExact( -1, m_listNames[iEvent] );
ASSERT( iItem != LB_ERR );
if( pDX->m_bSaveAndValidate )
m_checkFlags[iEvent] = m_checkList.GetCheck( iItem );
else
m_checkList.SetCheck( iItem, m_checkFlags[iEvent] != FALSE );
}
}
}
BEGIN_MESSAGE_MAP(CCtrlPage1, CPropertyPage)
ON_WM_PAINT()
ON_LBN_SELCHANGE(IDC_LIST1, OnLbnSelchangeList1)
ON_LBN_SELCHANGE(IDC_CHECKLISTBOX, OnLbnSelchangeChecklistbox)
END_MESSAGE_MAP()
// CCtrlPage1 消息处理程序
BOOL CCtrlPage1::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: 在此添加额外的初始化
m_DrawList.AddString("Line");
m_DrawList.AddString("Rectangle");
m_DrawList.AddString("Ellipse");
m_DrawList.AddString("Text");
m_listNames.Add("Line");m_checkFlags.Add(1);
m_listNames.Add("Rectangle");m_checkFlags.Add(1);
m_listNames.Add("Ellipse");m_checkFlags.Add(1);
m_listNames.Add("Text");m_checkFlags.Add(1);
int iEvent;
for( iEvent = 0; iEvent < m_listNames.GetSize(); iEvent++ )
m_checkList.AddString( m_listNames[iEvent] );
UpdateData( FALSE );
return TRUE;
}
void CCtrlPage1::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此添加消息处理程序代码
switch(m_DrawTool)
{
case 0: dc.MoveTo(80,80);dc.LineTo(160,80);break;
case 1: dc.Rectangle(80,80,160,120);break;
case 2: dc.Ellipse(80,80,160,120);break;
case 3: dc.TextOut(80,100,"Hello,World!");break;
}
for( int i = 0; i< m_listNames.GetSize(); i++ )
{
if(m_checkFlags[i])
switch(i)
{
case 0: dc.MoveTo(180,70);dc.LineTo(260,70);break;
case 1: dc.Rectangle(180,80,260,120);break;
case 2: dc.Ellipse(180,80,260,120);break;
case 3: dc.TextOut(180,90,"Hello,World!");break;
}
}
// 不为绘图消息调用 CPropertyPage::OnPaint()
}
void CCtrlPage1::OnLbnSelchangeList1()
{
// TODO: 在此添加控件通知处理程序代码
switch(m_DrawList.GetCurSel())
{
case 0:m_DrawTool=0;break;
case 1:m_DrawTool=1;break;
case 2:m_DrawTool=2;break;
case 3:m_DrawTool=3;break;
}
Invalidate();
}
void CCtrlPage1::OnLbnSelchangeChecklistbox()
{
// TODO: 在此添加控件通知处理程序代码
int iEvent;
int iItem;
if( m_checkList.GetCount() > 0 )
{
for( iEvent = 0; iEvent < m_listNames.GetSize(); iEvent++ )
{
iItem = m_checkList.FindStringExact( -1, m_listNames[iEvent] );
ASSERT( iItem != LB_ERR );
m_checkFlags[iEvent] = m_checkList.GetCheck( iItem );
}
}
Invalidate();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -