网管控制台学习笔记
来源:互联网 发布:虚拟试衣间淘宝店铺 编辑:程序博客网 时间:2024/06/05 04:52
1.
注意include路径设置,由于代码里面是#include <snmp_pp/vb.h>
所以只需要包含到G:/svn/winutils/library/snmp/include
而不要到G:/svn/winutils/library/snmp/include/snmp_pp,这样就错了
2.
保存LIST CONTROL里面的内容部被刷新掉
由于本程序在ChangeView时,是新new了一个新对象createNewView(new CDlgSysSetting(this));而在createNewView中
void CtrapReceiverView::createNewView(CDialog *pDlg){
if (m_pDlg){
m_pDlg->SendMessage(WM_CLOSE);
delete m_pDlg;
}
m_pDlg = pDlg;
}
是delete掉了原对象,所以在切换视图的时候LIST CONTROL里面的内容没法保存,因为对象已经销毁了
此时,可以用ShowWindow(SW_HIDE)来解决,只是隐藏,而不销毁。
void CtrapReceiverView::createNewView(CDialog *pDlg){
if (m_pDlg){
m_pDlg->SendMessage(WM_CLOSE);
if(m_pDlg!=s_pDlg)
delete m_pDlg;
else
m_pDlg->ShowWindow(SW_HIDE);
}
m_pDlg = pDlg;
}
3.
改变LIST CONTROL里面每行的颜色。
添加OnCustomDraw消息响应函数
void CSortListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
*pResult = 0;
switch(lplvcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT :
*pResult = CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break;
case CDDS_SUBITEM | CDDS_ITEMPREPAINT:
if(GetItemCount() >= 1)
{
CString sText = GetItemText(lplvcd->nmcd.dwItemSpec,3);
if (sText=="错误"){
lplvcd->clrTextBk = RGB(255,0,0);
}
else if (sText=="警告")
{
lplvcd->clrTextBk = RGB(255,255,0);
}
CString sText2 = GetItemText(lplvcd->nmcd.dwItemSpec,0);
if (sText2=="已确认")
{
lplvcd->clrTextBk = RGB(255,255,255);
}
/*if(lplvcd->nmcd.dwItemSpec % 2)
{
lplvcd->clrTextBk = RGB(255,255,255);
}
else
{
lplvcd->clrTextBk = RGB(255,255,200);
}*/
*pResult = CDRF_NEWFONT;
}
break;
}
}
4.
当LIST CONTROL前面有复选框时,如果选择复选框就做响应动作
取消选择也做响应动作。
一个是用CListControl中的HitTest函数,注意的是CPoint要用ScreenToClient调整一下才行。
CPoint pt;
GetCursorPos(&pt);
m_list.ScreenToClient(&pt);
int nRow, nCol;
nRow=m_list.HitTest(pt);
m_list.SetItemText(nRow,COL_SURE,_T("已确认"));
for (int i=0; i<m_list.GetItemCount(); ++i){
if(m_list.GetItemText(i,COL_SURE)==_T("未确认"))
{
*pResult = 0;
return;
}
}
另一个是用CListControl中的GetCheck函数,不过要遍历LIST CONTROL的所有项,貌似没有上面的好
for(int i=0;i<m_list.GetItemCount();++i)
{
if(m_list.GetCheck(i)==BST_CHECKED)
m_list.SetItemText(i,COL_SURE,_T("已确认"));
}
4.
关于CDlgSysSetting。系统设置界面。
是点保存的时候,读取整个界面信息,然后写到配置文件里面。而非选择复选框时响应消息,这样太复杂。所以本软件如果只是选取复选框而不点保存,则无效,返回此界面时候仍然为默认值。
然后当初始化时候都是读取配置文件设置复选框的默认值。
在确定是否trap转发的时候也是读取配置文件。
- 网管控制台学习笔记
- SNMP网管学习笔记
- Linux网管学习笔记(26)Linux操作系统学习路线图
- php学习笔记6-(控制台程序)
- android学习笔记---控制台访问SQLite
- 【C++学习笔记】在控制台绘Bitmap
- STM32学习笔记3-串口控制台
- c++学习笔记,控制台应用程序问题
- Python学习笔记(控制台程序):模拟登录
- 【学习笔记】dubbo 控制台的部署
- Linux网管学习笔记(10)Linux到底有多吸引人?
- Linux网管学习笔记(12)Linux内核到底有多安全?
- Linux网管学习笔记(12)庖丁解牛:Linux就包括这么四大部分
- Linux网管学习笔记(13)紧急处理:别让Linux故障晕了你
- Linux网管学习笔记(14)细数家珍:我比较喜欢的Linux命令
- Linux网管学习笔记(23)几点学习体会(待续)
- (网管学习笔记34)虚拟机应用Virtual PC,VMware和VirtualBox
- 网管
- 疑难杂症之声卡问题
- MTK 开发流程和开发环境小记
- SQL Server2000常见问题和解决办法
- 关于java内部类的总结
- struts2.1 标签 备忘
- 网管控制台学习笔记
- 关于3rd mr和3rd FP1生成的安装包大小
- java二叉树排序算法
- Windows下InstantRails/Redmine安装记录
- 常见的部分Windows数据类型及其说明
- jsp 复选框使用方法
- SQl2005行列转换 pivot/unpivot
- liferay标签theme和strust2标签使用时发生的错误
- oracle常用函数大全