VC功能实现

如何移动窗体

 在鼠标左击事件中添加代码:

void CDialogin::OnLButtonDown(UINT nFlags, CPoint point) 
{   //该函数实现在客户区能够拖动窗体
	// TODO: Add your message handler code here and/or call default	
	CDialog::OnLButtonDown(nFlags, point);
	PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
}

如何自定义Button外观

方法1.使用CBitmapButton

方法2.重写button绘制函数

方法3.  (1)将Button属性Bitmap设置为true

              (2)添加以下代码

class CDialogin : public CDialog
{
	......
private:
	HBITMAP m_BitmapCancel;
	HBITMAP m_BitmapOK;
	HBITMAP m_BitmapClose;
public:
	CButton m_OK;
};
BOOL CDialogin::OnInitDialog()
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	/************************************************************************************************
	名称:	MAKEINTRESOURCE
	说明:	这个宏是把一个数字类型转换成指针类型的宏,它不存在释放的问题. 
			用这个宏的主要原因是有的资源是用序号定义的,而不是字符串.所以要把数字转换成字符串指针,
			然后再传递给LoadResource之类的函数,这样才加载了资源. 
			要释放资源(用LoadResource加载的)可以调用FreeResource函数把LoadResource返回的指针传递给
			FreeResource. 
	*************************************************************************************************/
	m_BitmapOK = ::LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP_QR));
	m_OK.SetBitmap(m_BitmapOK);

	return TRUE;
}

 如何在对话框中添加菜单

1.添加资源菜单(IDR_MENU1)

2.在对话框属性Menu中,选择对应的菜单(IDR_MENU1)。

当然也可以代码添加菜单,如下:

(1)在CDlgMenuToolbarDlg类声名中添加成员变量CMenu m_menu
(2)在CDlgMenuToolbarDlg::OnInitDialog() 中添加如下代码

//加载菜单
m_menu.LoadMenu(IDR_MENU1);
//设置当前菜单
SetMenu(&m_menu);
//当你不需要菜单时可以用 SetMenu(NULL);来取消当前菜单

 (3)添加事件可以在菜单分项上右键单击选择“添加事件处理程序”

如何在对话框工程中使用ToolBar

完全代码示例:

1.添加icon资源,定义变量

CToolBar m_ToolBar;
CImageList m_ImageList;//图片列表
CString strShow;       //提示文本显示

2.在OnInitDialog中添加如下代码,可以参考MSDN:如何:向 ToolBar 控件添加按钮http://msdn.microsoft.com/zh-cn/library/k74ce77h(v=vs.90).aspx

	//工具栏显示内容的设置
	m_ImageList.Create(32,32,ILC_COLOR|ILC_MASK,1,1);  //创建图像列表
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONDWDA));  //单位档案
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONWDLB));    //文档类别
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONAdd));   //添加文档
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONMod));  //修改文档
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONDel));   //删除文档
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONScan));   //浏览文档
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONFileAttri));//查看属性
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONUser));    //用户管理
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONMIMA));    //口令修改
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONLog));       //日志管理
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSJKBF));      //备份
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSJKHF));      //恢复
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONExit));    //退出系统

	UINT array[16];
	for(int i=0;i<16;i++)
	{
		if(i==2||i==8||i==12)
		{
			array[i]=ID_SEPARATOR;//第三个和第九个按钮为分隔条
		}
		else  array[i]=i+1101;
	}

	m_ToolBar.Create(this);
	m_ToolBar.SetButtons(array,16);
	m_ToolBar.SetButtonText(0,"单位档案");
	m_ToolBar.SetButtonText(1,"文档类别");
	m_ToolBar.SetButtonText(3,"添加文档");
	m_ToolBar.SetButtonText(4,"修改文档");
	m_ToolBar.SetButtonText(5,"删除文档");
	m_ToolBar.SetButtonText(6,"浏览文档");
	m_ToolBar.SetButtonText(7,"查看属性");
	m_ToolBar.SetButtonText(9,"用户管理");
	m_ToolBar.SetButtonText(10,"口令修改");
	m_ToolBar.SetButtonText(11,"日志管理");
	m_ToolBar.SetButtonText(13,"备份数据");
	m_ToolBar.SetButtonText(14,"恢复数据");
	m_ToolBar.SetButtonText(15,"退出系统");
	m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);

	m_ToolBar.SetSizes(CSize(60,60),CSize(32,32));//设置按钮和按钮位图大小
	m_ToolBar.EnableToolTips(true);
	RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);//显示工具栏

3.

如何使用CImageList  

 详见,“如何在对话框工程中使用ToolBar”

如何添加状态栏

代码如下:

定义

private:
	CStatusBarCtrl m_StatusBar;

在对话框OnInitDialog()中,状态栏分两部分(有两列)

	//状态栏显示内容的设置
	m_StatusBar.EnableAutomation();
	m_StatusBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,0);

	int width[] = {200, 400};
	m_StatusBar.SetParts(4, &width[0]);
	m_StatusBar.SetText("就绪", 0, 0);

	CTime t;
	t=CTime::GetCurrentTime();
	CString strdate;
	strdate.Format("当前日期:%s",t.Format("%y-%m-%d"));//显示当前时间
	m_StatusBar.SetText(strdate, 0, 1);

如何获得系统时间

参考“如何添加状态栏”

 如何使用tree控件

如何向ActiveX控件添加接口事件

 在“类视图”下,找到钥匙的图标,添加即可。

如何使CEdit控件滚动到最下边

void CAgentDemoDlg::LogUpdate()
{
	UpdateData(FALSE);
	m_ctlLog.LineScroll(m_ctlLog.GetLineCount());
}

使用

void CAgentDemoDlg::OnBnClickedButtonSignout()
{
	// TODO: 在此添加控件通知处理程序代码
	CString strRet("");
	CString strResult = m_Agent.SignOut();

	strRet.Format("SignOut: %s \r\n", strResult);
	m_strLog += strRet;
	LogUpdate();
}


 

猜你喜欢

转载自blog.csdn.net/wklnewlife/article/details/8099404
vc
今日推荐