您的位置:首页 > 其它

VC功能实现

2012-10-22 16:46 190 查看

如何移动窗体

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

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();
}


 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: