个人总结知识点(界面版)

XTToolkitPro使用总结:

1.将MFC控件改成自适应调整大小

将界面类的继承改为CXTPResizeDialog

class CDlgTemplate : public CXTPResizeDialog

在OnInitDialog()中添加

SetResize(IDOK,XTP_ANCHOR_BOTTOMRIGHT, XTP_ANCHOR_BOTTOMRIGHT);
SetResize(IDCANCEL,XTP_ANCHOR_BOTTOMRIGHT, XTP_ANCHOR_BOTTOMRIGHT);
SetResize(IDC_STATIC_RESET, XTP_ANCHOR_BOTTOMRIGHT, XTP_ANCHOR_BOTTOMRIGHT);
SetResize(IDC_STATIC_CLOSE, XTP_ANCHOR_BOTTOMLEFT,	XTP_ANCHOR_BOTTOMLEFT);
SetResize(IDC_STATIC_EXPAND,XTP_ANCHOR_BOTTOMLEFT,	XTP_ANCHOR_BOTTOMLEFT);
SetResize(IDC_EXPAND_TWO,XTP_ANCHOR_BOTTOMLEFT,	XTP_ANCHOR_BOTTOMLEFT);
SetResize(IDC_STATIC_BUTTOM,XTP_ANCHOR_BOTTOMLEFT,	XTP_ANCHOR_BOTTOMRIGHT);

其中

#define XTP_ANCHOR_BOTTOMCENTER  CXTPResizePoint(.5, 1)
//<COMBINE XTP_ANCHOR_BOTTOMCENTER>
#define XTP_ANCHOR_BOTTOMLEFT    CXTPResizePoint(0, 1)
//<COMBINE XTP_ANCHOR_BOTTOMCENTER>
#define XTP_ANCHOR_BOTTOMRIGHT   CXTPResizePoint(1, 1)
//<COMBINE XTP_ANCHOR_BOTTOMCENTER>
#define XTP_ANCHOR_MIDDLECENTER  CXTPResizePoint(.5, .5)
//<COMBINE XTP_ANCHOR_BOTTOMCENTER>
#define XTP_ANCHOR_MIDDLELEFT    CXTPResizePoint(0, .5)
//<COMBINE XTP_ANCHOR_BOTTOMCENTER>
#define XTP_ANCHOR_MIDDLERIGHT  CXTPResizePoint(1, .5)
//<COMBINE XTP_ANCHOR_BOTTOMCENTER>
#define XTP_ANCHOR_TOPLEFT      CXTPResizePoint(0, 0)
//<COMBINE XTP_ANCHOR_BOTTOMCENTER>
#define XTP_ANCHOR_TOPRIGHT     CXTPResizePoint(1, 0)
//<COMBINE XTP_ANCHOR_BOTTOMCENTER>
#define XTP_ANCHOR_TOPCENTER    CXTPResizePoint(.5, 0)

第一个参数代表横坐标,第二个参数代表纵坐标
从0-0表示不随界面变化而变化
从0-1表示一端固定,另一端随界面变化(本身会变化)
从1-1表示动态随界面变化(本身不变化)
从1-0会提示错误
.5到1表示变化的速度是0-1的一半

2.TIP文字气泡提醒

CXTPTipWindow m_tipWindow;//声明
//在OnInitDialog()
m_tipWindow.Create(this);//创建气泡
m_tipWindow.ShowWindow(SW_HIDE);//起始状态为隐藏
//在PreTranslateMessage()
if(pMsg->message == WM_MOUSEMOVE && pMsg->wParam == 0){
    CPoint point;
    point.x = LOWORD(pMsg->lParam);
    point.y = HIWORD(pMsg->lParam);
    MouseOverCtrl(point, pMsg->hwnd);
}//表示如果鼠标发生移动调用MouseOverCtrl函数
void CDlgTemplate::MouseOverCtrl(CPoint point, HWND hWnd)
{
	CWnd* pWnd = FromHandle(hWnd);
	if(!pWnd)
		return;
	int id = pWnd->GetDlgCtrlID();
	if(id == IDC_STATIC_REC_1||id == IDC_STATIC_REC_2||id == IDC_STATIC_REC_3)//鼠标移动到相应控件
	{
		UpdateData();

		CRect rect;
		pWnd->GetClientRect(&rect);

		//Calculate the client coordinates of the dialog window
		pWnd->ClientToScreen(&rect);
		pWnd->ClientToScreen(&point);
		ScreenToClient(&rect);
		ScreenToClient(&point);

		if(id == IDC_STATIC_REC_1)
			m_tipWindow.SetTipText(_T(""), _T("含篇名, 作者, 页码信息的目录内容"));//提示信息
		else if(id == IDC_STATIC_REC_2)
			m_tipWindow.SetTipText(_T(""), _T("标引的目录区域"));
		else if(id == IDC_STATIC_REC_3)
			m_tipWindow.SetTipText(_T(""), _T("输入的页码数字"));

		m_tipWindow.ShowTipWindow(rect, point, 0, 0, 0, FALSE, TRUE);
	}
}

效果如下图

在这里插入图片描述

3.超链接形式的按钮

首先创建一个static控件,名为IDC_STATIC_CLOSE

CXTPHyperLink m_hyperLink_close;//声明一个超链接变量
//在OnInitDialog()
m_hyperLink_close.EnableShellExecute(FALSE);
m_hyperLink_close.SetColors(CR_BLACK,CR_BLACK,CR_RED);
//在DoDataExchange()
DDX_Control(pDX, IDC_STATIC_CLOSE, m_hyperLink_close);
//这样就能将static类型转化成超链接类型,下面给超链接按钮添加功能
afx_msg void OnHypText_close();//声明功能函数
ON_BN_CLICKED(IDC_STATIC_CLOSE, &类名::OnHypText_close)//关联
void 类名::OnHypText_close()
{
	//此功能实现
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值